簡體   English   中英

NSTableCellView / NSTextField是否結束了編輯通知-無需更改文本?

[英]NSTableCellView / NSTextField did end editing notification — without text change?

文本字段結束編輯后如何獲得通知(按下輸入鍵,在文本字段外部單擊,在同一列內部單擊但在文本字段外部等)

我檢查了

- (void)textDidEndEditing:(NSNotification *)aNotification
{
   //some code here
}

但是僅當文本實際更改時才調用此通知。 即使未進行任何文本更改,也需要通知我。

編輯:第一個響應者已更改的某種通知也將起作用。

有任何想法嗎?

觀察窗口的firstResponder狀態...

…
[theWindow addObserver:self forKeyPath:@"firstResponder" options:NSKeyValueObservingOptionOld context:NULL];
…

…並閱讀現場編輯的委托:

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
  if ([keyPath isEqualToString:@"firstResponder"])
  {
    NSResponder *oldResponder =change[NSKeyValueChangeOldKey];
    if ([oldResponder isKindOfClass:[NSTextView class]])
    {
      NSTextView *editor = (NSTextView*)oldResponder;
      NSTextField *textField = (NSTextField*)editor.delegate;
      NSLog(@"This text field lost the focus: %@", textField.identifier);
    }
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM