NSTextField в строке состояния не хочет получать фокус - PullRequest
0 голосов
/ 22 августа 2011

Для некоторых резонаторов иногда NSTextField, который я использую в меню строки состояния, не всегда позволяет мне вводить текст. Я нажимаю на него, и ничего не происходит, как если бы он был отключен. После перезапуска программы снова работает. Я ничего с этим не делаю, он просто создан в конструкторе интерфейсов.

1 Ответ

0 голосов
/ 22 августа 2011

Это потому, что ни одно NSWindow не содержит NSTextField. NSWindow устанавливает первого респондента, когда окно получает главное окно. NSStatusBar является глобальным. Он никогда не фокусируется, поэтому ваше текстовое поле будет сфокусировано только в самом начале.

Я не уверен, есть ли способ решить эту проблему хорошим способом. Вы можете попытаться установить первый респондент вручную. Вы также можете добавить монитор глобальных событий

Пример:

[NSEvent addGlobalMonitorForEventsMatchingMask:NSKeyDownMask handler:^(NSEvent* incoming) {
  [textfield setStringValue:[incoming characters]];
}];

Примечание. Это очень плохой способ решения этой проблемы. Сначала я бы попытался вручную установить NSTextField в качестве первого респондента, если это возможно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...