1

これがバグかどうかはわかりません。

MonoTouch.Dialog で ScopeButton を有効にし、Index Change イベントを接続します。

        UISearchBar sb = TableView.TableHeaderView as UISearchBar;
        sb.ScopeButtonTitles = new string[] { "Full Text".t(), "Titles".t() };
        sb.ShowsScopeBar = true;
        sb.SizeToFit();
        sb.SelectedScopeButtonIndexChanged += (sender, e) => {
            CreateRoot(sb.Text);
        };

次に、検索関数をオーバーライドします。

    public override void FinishSearch()
    {
        //do nothing, leave the UI 
    }

    public override void OnSearchTextChanged(string text)
    {
        CreateRoot(text);
    }

    public override void SearchButtonClicked(string text)
    {
         //Do nothing, leave the UI
    }

その結果、OnSearchTextChanged は起動しません。

次の行を削除すると、起動して問題なく動作します。

//Remove to re-enable SearchButtonClicked
sb.SelectedScopeButtonIndexChanged += (sender, e) => {
CreateRoot(sb.Text);
};

注: SubViews を介して SearchBar の UISegment コントロールにアクセスすると、正常に動作します。

    foreach (UIView v in sb.Subviews)
    {
        var seg = v as UISegmentedControl;
        if(seg!=null)
        {
            CreateRoot("Some text");
        };
        break;
    }
4

1 に答える 1

0

これは MOnotouch.dialog の最新ビルドで修正されています。

于 2013-01-27T19:04:57.887 に答える