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