Вы можете создать подкласс NSSearchField и добавить эту функцию
- (BOOL)resignFirstResponder {
return NO;
}
Он откажется отказаться от статуса первого респондента.
Другой способ - перехватить уведомление windowDidUpdate.Они отправляются всякий раз, когда что-либо изменяется, включая изменение фокуса, поэтому вы можете проверить наличие первого ответчика и сделать его снова первым респондентом.
[searchField becomeFirstResponder];