如何在文本字段结束编辑时收到通知(按住键,在文本字段外单击,在同一列内单击,但在文本字段外等)
我检查了
- (void)textDidEndEditing:(NSNotification *)aNotification
{
//some code here
}
但仅在文本实际更改时才会调用此通知。即使没有进行任何文本更改,我也需要收到通知。
编辑:第一个响应者已更改的某种通知也可以正常工作。
有什么想法吗?
答案 0 :(得分:0)
观察窗口的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);
}
}
}