Cmd + нажмите, чтобы переместить элемент статуса

Встроенная батарея, Wi-Fi, звук и т. Д., Поставляемые Apple элементы состояния, можно перетащить в любую позицию меню с помощью cmd + click и перетащить:

Как я могу поддерживать аналогичные функции в своем собственном статусе?

1 ответ

Решение

Есть два способа получить меню в правой части строки меню. Официально поддерживаемым способом является создание NSStatusItem в вашем приложении. Другими способами является создание NSMenuExtra, Вы заметили одно отличие: NSStatusItem меню зафиксированы на месте, а дополнительные пункты меню можно перемещать, перетаскивая их с помощью cmd.

Другое основное отличие и причина, по которой дополнительные функции сторонних меню официально не поддерживаются, заключается в том, что в отличие от элементов состояния (которые запускаются как отдельные приложения), дополнительные элементы меню загружаются в адресное пространство процесса SystemUIServer. Это означает, что если они потерпят неудачу и потерпят крах, они могут отключить интерфейс.

Вы можете увидеть дополнительные меню, установленные в вашей системе на /System/Library/CoreServices/Menu Extras, Возможно, все еще будет возможно создать свой собственный и загрузить ОС, но у вас возникнут проблемы, если вы попытаетесь отправить результат. Лучше пойти на bugreport.apple.com и сообщить им, что NSStatusItems должен быть перетаскиваемым.

В Википедии есть больше информации о Дополнениях Меню, включая некоторые ссылки на учебник по созданию своего собственного.

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