我目前有一個包含項目列表的應用程序,現在我希望能夠搜索該列表。我知道我需要使用搜索欄和控制器,唯一的問題是,我找不到任何文檔或示例來實現此目的。我有一個搜索欄的控制器類設置,但它是一個空白類。這有什麼好的起點?在Xamarin.iOS上使用UISearchBar和搜索控制器
This question似乎是一個很好的選擇,但是哪裏去了,我該如何將它移植到C#for xamarin?
我目前有一個包含項目列表的應用程序,現在我希望能夠搜索該列表。我知道我需要使用搜索欄和控制器,唯一的問題是,我找不到任何文檔或示例來實現此目的。我有一個搜索欄的控制器類設置,但它是一個空白類。這有什麼好的起點?在Xamarin.iOS上使用UISearchBar和搜索控制器
This question似乎是一個很好的選擇,但是哪裏去了,我該如何將它移植到C#for xamarin?
我爲Storyboard和UISearchDisplayControlelr創建了這個演示。請看SearchDemo。
這是演示如何使用UISearchController的iOS示例應用程序。搜索控制器管理搜索欄的顯示(與結果視圖控制器的內容一致) 看看這個,然後讓我知道如果有任何問題。 https://github.com/xamarin/monotouch-samples/tree/master/ios8/TableSearch
我實際上看着目前,但他們以編程方式添加搜索欄,我希望它在故事板。 – hightekjonathan
所以只需在創建插座後給出搜索欄的名稱就可以工作 – Sport
然後,我將代理設置爲SearchController嗎? – hightekjonathan
Xamarin 5.10:
var sampleSearchBar = new UISearchBar (new CoreGraphics.CGRect (20, 20, this.View.Frame.Width - 50, 40));
sampleSearchBar.SearchBarStyle = UISearchBarStyle.Prominent;
sampleSearchBar.ShowsCancelButton = true;
//Deleagte class source
sampleSearchBar.Delegate = new SearchDelegate();
this.View.AddSubview (sampleSearchBar);
添加Delegate類到ViewController。
class SearchDelegate : UISearchBarDelegate
{
public override void SearchButtonClicked (UISearchBar bar)
{
bar.ResignFirstResponder();
}
public override void CancelButtonClicked (UISearchBar bar)
{
bar.ResignFirstResponder();
}
public override bool ShouldBeginEditing (UISearchBar searchBar)
{
return true;
}
public override bool ShouldEndEditing (UISearchBar searchBar)
{
return true;
}
public override bool ShouldChangeTextInRange (UISearchBar searchBar, NSRange range, string text)
{
Console.WriteLine (searchBar.Text);
return true;
}
}
除了正常的標籤外,我還需要從detailTextLabel中進行搜索,並且在點擊搜索到的項目時,我需要將視圖推送到細節視圖控制器,這不會發生。我從GitHub下載了您的示例,並且在運行時,嘗試搜索時會引發異常,或者單擊某個項目。 – hightekjonathan
@hightekjonathan從detailTextLabel中搜索很容易實現。我已經更新了演示。異常的詳細信息是什麼?它適用於我的iPhone 6 iOS 8.3模擬器。 –
我目前無法檢查。我相信這是一個NSOutOfRangeException。我會在早上看看 – hightekjonathan