Как сделать окно About передним окном в приложении Какао без пользовательского интерфейса?

Я создаю приложение Какао, которое запускается как элемент в строке состояния. Это приложение имеет окно "О программе" и элемент для его активации, используя для этого стандартный механизм Какао (-[NSApplication orderFrontStandardAboutPanel:]). Естественно, все это подключается автоматически.

Он отлично работает, за исключением одной вещи: в отличие от большинства окон, он отображается под всеми остальными окнами, а не сверху. Я считаю, что это потому, что приложение не имеет пользовательского интерфейса, поэтому все его окна автоматически находятся под другими окнами. Есть ли способ, которым я могу подключиться к механизму NSApplication для отображения окна About, чтобы я мог отправить его вперед и заставить его реагировать на ⌘-W, чтобы его можно было закрыть с клавиатуры? Я просмотрел в документации по NSApplication, но нет никакого способа получить ссылку на окно "О программе", которое я вижу, чтобы сделать его отображаемым сверху.

1 ответ

Есть ли способ, которым я могу подключиться к механизму NSApplication для отображения окна About, чтобы я мог отправить его на передний план?

Это то что orderFrontStandardAboutPanel: делает.

Он отлично работает, за исключением одной вещи: в отличие от большинства окон, он отображается под всеми остальными окнами, а не сверху. Я считаю, что это потому, что приложение не имеет пользовательского интерфейса, поэтому все его окна автоматически находятся под окнами других [приложений].

Попробуйте перенести ваше приложение на [NSApp activateIgnoringOtherApps:YES],

Обратите внимание, что то, как вы заставляете ваше приложение "не иметь пользовательский интерфейс", имеет значение: если вы используете LSUIElement, это будет работать, тогда как LSBackgroundOnly довольно строго означаеттолько фон.

Другие вопросы по тегам