Предыдущий ответ неверен, потому что NSTextField
/ NSSearchField
сами не становятся первым респондентом и обрабатывают отредактированный текст.Вместо этого они используют редактор полей окна, который представляет собой NSTextView
, который используется всеми полями окна (поскольку только одно из них может иметь фокус одновременно).
Вам нужно проверить,первым респондентом является NSText
, и если это так, если поле поиска / текстовое поле является его делегатом.
NSResponder *firstResponder = [[NSApp keyWindow] firstResponder];
if ([firstResponder isKindOfClass:[NSText class]] && [(id)firstResponder delegate] == mySearchField) {
NSLog(@"Yup.");
}