C# 在Xamarin.iOS上使用UISearchBar和搜索控制器
我目前有一个包含项目列表的应用程序,我现在希望能够搜索该列表。我知道我需要使用一个搜索栏和控制器,唯一的问题是,我找不到任何实现这个的文档或示例。我为搜索栏设置了一个控制器类,但它是一个空白类。这方面的良好起点在哪里C# 在Xamarin.iOS上使用UISearchBar和搜索控制器,c#,ios,xamarin.ios,C#,Ios,Xamarin.ios,我目前有一个包含项目列表的应用程序,我现在希望能够搜索该列表。我知道我需要使用一个搜索栏和控制器,唯一的问题是,我找不到任何实现这个的文档或示例。我为搜索栏设置了一个控制器类,但它是一个空白类。这方面的良好起点在哪里 这似乎是一个不错的选择,但这会发生什么,我如何将其移植到C#for xamarin?这是一个演示如何使用UISearchController的iOS示例应用程序。搜索控制器管理搜索栏的显示(与结果视图控制器的内容一致) 看看这个,然后告诉我是否有任何问题。 这是一个iOS示例应用程
这似乎是一个不错的选择,但这会发生什么,我如何将其移植到C#for xamarin?这是一个演示如何使用UISearchController的iOS示例应用程序。搜索控制器管理搜索栏的显示(与结果视图控制器的内容一致) 看看这个,然后告诉我是否有任何问题。
这是一个iOS示例应用程序,演示如何使用UISearchController。搜索控制器管理搜索栏的显示(与结果视图控制器的内容一致) 看看这个,然后告诉我是否有任何问题。
我使用Storyboard和UISearchDisplayControlelr为您创建了此演示
看看这个。我用Storyboard和UISearchDisplayControlelr为您创建了这个演示
看看这个。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);
将委托类添加到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;
}
}
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);
将委托类添加到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;
}
}
我现在真的在看这个,但是他们以编程方式添加了搜索栏,我希望它出现在故事板中。所以,在创建outlet之后,只需给出搜索栏的名称,它就可以工作了吗?然后我将代理设置为SearchController?是的,必须是UISearchBarDelegate,请参见,我很抱歉,但这对我来说没有意义。我不明白为什么SearchController会继承BaseController。有没有一种方法可以在不需要超过1个文件的情况下实现这一点?我目前正在查看,但他们以编程方式添加了搜索栏,我希望它出现在故事板中。因此,在创建outlet之后,只需给出搜索栏的名称,它就可以工作了吗?然后我将委托设置为SearchController?是的,必须使用UISearchBarDelegate,请参见,我很抱歉,但这对我来说没有意义。我不明白为什么SearchController会继承BaseController。有没有一种方法可以在不需要超过1个文件的情况下执行此操作?除了正常标签外,我还需要从detailTextLabel进行搜索,并且在单击搜索的项目时,我需要将视图推送到detail view控制器,这不会发生。我从GitHub下载了您的示例,在运行时,它在尝试搜索或单击某个项目时抛出异常。@从detailTextLabel进行搜索很容易实现。我已经更新了那个演示。异常的详细信息是什么?它在我的iPhone6iOS8.3模拟器上运行良好。我现在无法检查。我相信这是个例外。我会在早上看一看这工作得很好,除了我还需要从一个detailTextLabel中搜索正常的标签之外,并且在单击搜索的项目时,我需要将视图推送到detail view控制器,这不会发生。我从GitHub下载了您的示例,在运行时,它在尝试搜索或单击某个项目时抛出异常。@从detailTextLabel进行搜索很容易实现。我已经更新了那个演示。异常的详细信息是什么?它在我的iPhone6iOS8.3模拟器上运行良好。我现在无法检查。我相信这是个例外。明天早上我去看看