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);
};

注意:如果您通过子视图访问 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 回答