Xamarin:UISearchController 没有成为第一响应者,并且在将其添加到导航栏时没有开始编辑
Posted
技术标签:
【中文标题】Xamarin:UISearchController 没有成为第一响应者,并且在将其添加到导航栏时没有开始编辑【英文标题】:Xamarin : UISearchController is not becoming first responder and editing is not getting started while adding it to Navigation Bar 【发布时间】:2016-12-17 13:01:53 【问题描述】:UISearchController
遇到了一个奇怪的问题。
单击按钮,我在 UIViewController1 的导航栏中添加了搜索控制器。它在 UIViewController1 中运行良好。现在我正在导航到 UIViewController2,并且我还通过单击按钮添加 UISearchController。下面是示例代码。问题是在 UIViewController2 UISearchController 没有成为第一响应者,OnEditingStarted
没有被解雇。当我在 UIViewController1 中使用(添加搜索控制器)现在尝试在 UIViewController2 中使用时,就会发生这种情况。
这就是我添加搜索控制器的方式:
DefinesPresentationContext = true;
_searchController = new UISearchController(searchResultsController: null)
WeakDelegate = this, DimsBackgroundDuringPresentation = false, WeakSearchResultsUpdater = this,
;
_searchController.SearchBar.SizeToFit();
_searchController.SearchBar.TintColor = UIColor.Black;
_searchController.SearchBar.WeakDelegate = this;
_searchController.SearchBar.OnEditingStarted += OnEditingStarted;
_searchController.SearchBar.OnEditingStopped += OnEditingStopped;
_searchController.SearchBar.SearchButtonClicked += OnSearchButtonClicked;
_searchController.SearchBar.CancelButtonClicked += OnSearchCancelledClicked;
_searchController.HidesNavigationBarDuringPresentation = false;
NavigationController.NavigationBar.TopItem.TitleView = this._searchController.SearchBar;
_searchController.SearchBar.BecomeFirstResponder();
OnSearchCancelledClicked
我正在尝试删除 UISearchController
NavigationController.NavigationBar.TopItem.TitleView = null;
_searchController.SearchBar.ResignFirstResponder();
_searchController.SearchBar.RemoveFromSuperview();
可能是什么问题。上一个屏幕中的搜索控制器是否仍处于活动状态并阻止对新屏幕中搜索控制器的调用。如果我直接导航到 UIViewController2 则搜索控制器工作正常。
【问题讨论】:
【参考方案1】:我终于通过在新线程中设置属性解决了这个问题,如下所示:
Task.Factory.StartNew(() =>
InvokeOnMainThread(() =>
_searchController.SearchBar.BecomeFirstResponder();
);
);
【讨论】:
以上是关于Xamarin:UISearchController 没有成为第一响应者,并且在将其添加到导航栏时没有开始编辑的主要内容,如果未能解决你的问题,请参考以下文章
Xamarin.forms(或)xamarin.ios/xamarin.android(或)本机
Xamarin.Forms 和 Xamarin Native 有啥区别? [关闭]
Xamarin SQLite教程Xamarin.iOS项目添加引用
新的 Xamarin 项目不使用最新的 Xamarin 版本
当 Xamarin.ios Uitest 从 Xamarin Studio 运行时,在 Xamarin 测试云上面临“停滞的错误”