Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/120.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在Xamarin.iOS上使用UISearchBar和搜索控制器_C#_Ios_Xamarin.ios - Fatal编程技术网

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模拟器上运行良好。我现在无法检查。我相信这是个例外。明天早上我去看看