В частности, он ведет себя непоследовательно в отношении фокуса текстового поля.
У меня есть LSUIElement, выскакивающий меню состояния.В этом меню есть представление, содержащее текстовое поле.Текстовое поле должно быть доступно для выбора - не обязательно выбрано по умолчанию, но в зависимости от того, что произойдет.
При нажатии на элемент состояния запускается
[NSApp activateIgnoringOtherApps:YES];
И это работает, примерно в два раза. * Другая половина меню состояния, кажется, считает себя "на заднем плане" и не позволяет мне сосредоточиться на текстовом поле, даже нажав на него.(Я знаю, что срабатывает щелчок триггера элемента состояния, потому что на нем есть NSLog.)
Это ошибка в том, как Apple обрабатывает эти элементы статуса, или я неправильно обращаюсь с activIgnoringOtherApps?
* На самом деле, кажется, что он выходит из строя только в первый раз после активации другого приложения.После этого все работает нормально.
Полный фрагмент:
-(void)statusItemClicked:(id)sender {
//show the popup menu associated with the status item.
[statusItem popUpStatusItemMenu:statusMenu];
//activate *after* showing the popup menu to obtain focus for the text field.
[NSApp activateIgnoringOtherApps:YES];
}