저는 iOS에 익숙하지 않습니다. MacOS에서 Xamarin Studio를 사용하고 있습니다. (이미 Xamarin.Droid 앱을 가지고 있으며 이제 iOS에서 제작하고 있습니다.)UISearchBar SearchButton을 호출하지 않았습니까?
저는 UISearchBar를 사용하는 데 어려움을 겪고 있습니다. 정말 기본적인 사용법을 원합니다.이 요리법 (https://developer.xamarin.com/recipes/ios/content_controls/search-controller/)을 따르려고했지만 여전히 작동하도록 관리 할 수 없습니다.
내가 얻으려고하는 것은 사용자가 텍스트를 입력 한 다음 키보드의 "검색"버튼을 눌러야하는 SearchBar입니다. 검색 버튼을 누르면 웹 서비스에서 검색된 데이터로 UITableView를 채울 코드를 호출해야합니다.
가 여기 내 스토리 보드 구조,
내가 다음 코드를 시도한 이름으로 jQuery과 포함의 ViewController의 모든 보인다 잘 작동하지만 w 암탉 나는 키보드에서 검색 누릅니다 SearchButtonClicked 이벤트는 트리거되지 않습니다 ... 그리고public partial class SearchViewController : UIViewController
{
public SearchViewController(IntPtr handle) : base(handle)
{
}
public override void ViewDidLoad()
{
var searchController = new UISearchController(this);
searchController.SearchBar.SizeToFit();
searchController.SearchBar.ShowsCancelButton = true;
searchController.SearchBar.SearchButtonClicked += delegate {
Console.WriteLine("Hello ????");
this.Title = "This code is never called";
};
RunnersSearchTableView.TableHeaderView = searchController.SearchBar;
base.ViewDidLoad();
}
}
는 또한
public partial class SearchViewController : UIViewController
{
public SearchViewController(IntPtr handle) : base(handle)
{
}
public override void ViewDidLoad()
{
var searchController = new UISearchController(this);
searchController.SearchBar.SizeToFit();
searchController.HidesNavigationBarDuringPresentation = true;
searchController.SearchBar.ShowsCancelButton = true;
searchController.SearchBar.Delegate = new MySearchBarDelegate();
RunnersSearchTableView.TableHeaderView = searchController.SearchBar;
base.ViewDidLoad();
}
}
public class MySearchBarDelegate : UISearchBarDelegate
{
public MySearchBarDelegate()
{
}
public override void SearchButtonClicked(UISearchBar searchBar)
{
Console.WriteLine("TEST");
searchBar.ResignFirstResponder();
base.SearchButtonClicked(searchBar);
}
}
을 시도 또한
public partial class SearchViewController : UIViewController
{
public SearchViewController(IntPtr handle) : base(handle)
{
}
public override void ViewDidLoad()
{
var searchController = new UISearchController(this);
searchController.SearchBar.SizeToFit();
searchController.HidesNavigationBarDuringPresentation = true;
searchController.SearchBar.ShowsCancelButton = true;
searchController.SearchBar.WeakDelegate = this;
RunnersSearchTableView.TableHeaderView = searchController.SearchBar;
base.ViewDidLoad();
}
[Export("searchBarSearchButtonClicked:")]
public virtual void SearchButtonClicked(UISearchBar searchBar)
{
Console.WriteLine("hello??");
searchBar.ResignFirstResponder();
}
}
을 시도 이유를 알아낼 수 없습니다 아무도 작동하지 않는 것 같습니다
답변 해 주셔서 감사합니다. 대의원을 어디에서 등록해야합니까? 내 UIViewController 클래스에? 그것은 중복 등록 속성이 작동하지 않습니다. WeakDelegate = this를 내 SearchBar에 넣은 다음 SearchButtonClicked를 내보내려고했습니다. https://github.com/xamarin/ios-samples/blob/master/ios8/TableSearch/TableSearch/MainTableViewController.cs하지만 그렇지 않습니다. 다음 중 하나를 수행하십시오. / –