2016-11-02 42 views
0

而內NSTokenField打字我顯示該值的建議,與GetCompletionStringsNSTokenFieldDelegateNSTokenField值改變通知

public override string [] GetCompletionStrings (NSTokenField tokenField, string substring, nint tokenIndex, nint selectedIndex) 
     { 
      //return my values 
     } 

,但如果我將完全刪除所有來自NSTokenFiled symboled此事件不會被解僱。

我需要趕上通知時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

我也試圖在構造函數來處理事件: [導出( 「的initWithCoder:」)] \t \t公共TokenField(NSCoder編碼器):基地(編碼器) \t \t { \t \t \t this.Changed + =(鄰,E)=> { \t \t \t \t //調試 \t \t \t}; \t \t} 但仍然沒有結果 – Nininea

回答

0

可以使用Changed事件到c使用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); 
+0

我已更新問題,但不幸它不適用於我 – Nininea

+0

我在xib文件中設置了操作「發送結束編輯」,現在它可以工作。 – Nininea

+0

如果處理更改,則不會調用GetCompletionStrings:/ – Nininea

0

我設置的Action「發送就結束編輯」來令牌現場,在廈門國際銀行文件和現在的工作。

在此之後更改事件被稱爲

enter image description here