在 UISearchController 中未调用 SearchResultsUpdating
SearchResultsUpdating not being called in UISearchController
我在 Xamarin.Ios 中使用 UISearchController 并且一切正常,但是当我开始输入时,SearchhResultUpdating 方法没有覆盖也没有触发。它有时有效,有时无效,但现在它根本无效。
这是 SearchResultsUpdating Class:
class SearchResult : UISearchResultsUpdating
{
public event Action<string> UpdateSearchResults = delegate { };
public override void UpdateSearchResultsForSearchController(UISearchController searchController)
{
this.UpdateSearchResults(searchController.SearchBar.Text);
}
}
这是我使用它的时间:
var searchresult = new SearchResult();
searchresult.UpdateSearchResults += searchResultsController.Search;
var searchController = new UISearchController(searchResultsController) { SearchResultsUpdater = searchresult };
您应该将 searchController
设为 global variable
。
如果你这样做,它不会释放并保留在它的生命周期中,并在 UISearchResultsUpdating
中触发该方法
参考这个Demo
我在 Xamarin.Ios 中使用 UISearchController 并且一切正常,但是当我开始输入时,SearchhResultUpdating 方法没有覆盖也没有触发。它有时有效,有时无效,但现在它根本无效。
这是 SearchResultsUpdating Class:
class SearchResult : UISearchResultsUpdating
{
public event Action<string> UpdateSearchResults = delegate { };
public override void UpdateSearchResultsForSearchController(UISearchController searchController)
{
this.UpdateSearchResults(searchController.SearchBar.Text);
}
}
这是我使用它的时间:
var searchresult = new SearchResult();
searchresult.UpdateSearchResults += searchResultsController.Search;
var searchController = new UISearchController(searchResultsController) { SearchResultsUpdater = searchresult };
您应该将 searchController
设为 global variable
。
如果你这样做,它不会释放并保留在它的生命周期中,并在 UISearchResultsUpdating
参考这个Demo