NSTokenField
内输入时输入我显示了此值的建议,GetCompletionStrings
来自NSTokenFieldDelegate
public override string [] GetCompletionStrings (NSTokenField tokenField, string substring, nint tokenIndex, nint selectedIndex)
{
//return my values
}
但如果我将从NSTokenFiled完全删除所有符号,则此事件将被解雇。
我需要在NSTokenFiled string value
更改或清除或更新时收到通知,而无需点击输入按钮。
我在其中使用自定义nstoken字段TokenField : NSTokenField
我覆盖了DidEndEditing,如下所示:
public override void DidEndEditing (NSNotification notification)
{
if (EditingFinished != null) {
EditingFinished (null, null);
}
base.DidEndEditing (notification);
}
只有在输入点击后才会调用此方法,而不是在文本更改时触发...
我还尝试在视图控制器中处理视图的更改事件,但不会调用
TagsSearchField.EditingFinished += OnTagFilterSet;
TagsSearchField.Delegate = new TagFieldDelegate ();
TagsSearchField.Changed += (o, e) => {
//debug
};
答案 0 :(得分:1)
答案 1 :(得分:0)
您可以使用Changed
事件使用NSTokenField
捕获所有编辑更改;包括清晰,剪贴板剪裁等。
tokenField = new NSTokenField(new CGRect(100, 100, 300, 40));
tokenField.Delegate = this;
tokenField.Changed += (object sender, EventArgs e) =>
{
Console.WriteLine($"changed: {tokenField.StringValue}");
var tokenArray = tokenField.ObjectValue as NSArray;
for (nuint i = 0; i < tokenArray.Count; i++)
{
Console.WriteLine(tokenArray.GetItem<NSString>(i));
}
};
View.AddSubview(tokenField);