Как сделать окно About передним окном в приложении Какао без пользовательского интерфейса?
Я создаю приложение Какао, которое запускается как элемент в строке состояния. Это приложение имеет окно "О программе" и элемент для его активации, используя для этого стандартный механизм Какао (-[NSApplication orderFrontStandardAboutPanel:]
). Естественно, все это подключается автоматически.
Он отлично работает, за исключением одной вещи: в отличие от большинства окон, он отображается под всеми остальными окнами, а не сверху. Я считаю, что это потому, что приложение не имеет пользовательского интерфейса, поэтому все его окна автоматически находятся под другими окнами. Есть ли способ, которым я могу подключиться к механизму NSApplication для отображения окна About, чтобы я мог отправить его вперед и заставить его реагировать на ⌘-W, чтобы его можно было закрыть с клавиатуры? Я просмотрел в документации по NSApplication, но нет никакого способа получить ссылку на окно "О программе", которое я вижу, чтобы сделать его отображаемым сверху.
1 ответ
Есть ли способ, которым я могу подключиться к механизму NSApplication для отображения окна About, чтобы я мог отправить его на передний план?
Это то что orderFrontStandardAboutPanel:
делает.
Он отлично работает, за исключением одной вещи: в отличие от большинства окон, он отображается под всеми остальными окнами, а не сверху. Я считаю, что это потому, что приложение не имеет пользовательского интерфейса, поэтому все его окна автоматически находятся под окнами других [приложений].
Попробуйте перенести ваше приложение на [NSApp activateIgnoringOtherApps:YES]
,
Обратите внимание, что то, как вы заставляете ваше приложение "не иметь пользовательский интерфейс", имеет значение: если вы используете LSUIElement, это будет работать, тогда как LSBackgroundOnly довольно строго означаеттолько фон.