私はiOSが新しく、私はMacOS上でXamarin Studioを使用しています(私は既にXamarin.Droidアプリを持っていて、今はiOS上で作っています)。UISearchBar SearchButtonは呼び出されませんでしたか?
私はUISearchBarを使って苦労しています。私は本当に基本的な使い方をしたいと思います。私はこのレシピ(https://developer.xamarin.com/recipes/ios/content_controls/search-controller/)に従うようにしましたが、まだそれを動作させることはできません。
私が得ようとしているのは、ユーザーがテキストを入力してからキーボードの「検索」ボタンを押す検索バーです。検索ボタンを押すと、Webサービス上で取得されたデータがUITableViewに読み込まれます。
はここに私のストーリーボード構造、
は、私は次のコードを試してみました名前でのUITableViewが含まれているの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次のいずれかを行います:/ –