2016-11-02 7 views
0

при вводе в NSTokenField я показываю предложения по этому значению, с GetCompletionStrings из NSTokenFieldDelegateзначение NSTokenField изменено уведомление

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

, но если я буду полностью удалить все symboled из NSTokenFiled это событие не будет уволен.

Мне нужно уловить уведомление, когда NSTokenFiled string value будет изменено или очищено или обновлено, без нажатия кнопки ввода.

Я использую пользовательские nstoken поле TokenField : NSTokenField внутри него я переопределить DidEndEditing, как это:

public override void DidEndEditing (NSNotification notification) 
     { 
      if (EditingFinished != null) { 
       EditingFinished (null, null); 
      } 
      base.DidEndEditing (notification); 
     } 

это вызывается только после ввода щелкнул, не открыли огонь по изменению текста ...

I также пытался справиться с изменениями событие с моей точки зрения с точки зрения управления, но это не называется

TagsSearchField.EditingFinished += OnTagFilterSet; 
     TagsSearchField.Delegate = new TagFieldDelegate(); 
     TagsSearchField.Changed += (o, e) => { 
     //debug 
     }; 
+0

Я также попытался обработать событие в конструкторе: [Export ("initWithCoder:")] \t \t общественного TokenField (NSCoder кодер): основание (кодер) \t \t { \t \t \t this.Changed + = (а, е) => { \t \t \t \t // debug \t \t \t}; \t \t} но все еще нет результата – Nininea

ответ

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); 
+0

У меня есть обновленный вопрос, к сожалению он не работает для меня – Nininea

+0

Я установил действие «Отправлено на редактирование конца» в файле xib и теперь он работает. – Nininea

+0

GetCompletionStrings не вызывается при обработке изменений: / – Nininea

0

Я установил Действие «Отправленные дыбом правка» Символическое поле, в XIb файл и он работает сейчас.

После этого Изменить событие называется

enter image description here

 Смежные вопросы

  • Нет связанных вопросов^_^