Cmd + нажмите, чтобы переместить элемент статуса
Встроенная батарея, Wi-Fi, звук и т. Д., Поставляемые Apple элементы состояния, можно перетащить в любую позицию меню с помощью cmd + click и перетащить:
Как я могу поддерживать аналогичные функции в своем собственном статусе?
1 ответ
Есть два способа получить меню в правой части строки меню. Официально поддерживаемым способом является создание NSStatusItem
в вашем приложении. Другими способами является создание NSMenuExtra
, Вы заметили одно отличие: NSStatusItem
меню зафиксированы на месте, а дополнительные пункты меню можно перемещать, перетаскивая их с помощью cmd.
Другое основное отличие и причина, по которой дополнительные функции сторонних меню официально не поддерживаются, заключается в том, что в отличие от элементов состояния (которые запускаются как отдельные приложения), дополнительные элементы меню загружаются в адресное пространство процесса SystemUIServer. Это означает, что если они потерпят неудачу и потерпят крах, они могут отключить интерфейс.
Вы можете увидеть дополнительные меню, установленные в вашей системе на /System/Library/CoreServices/Menu Extras
, Возможно, все еще будет возможно создать свой собственный и загрузить ОС, но у вас возникнут проблемы, если вы попытаетесь отправить результат. Лучше пойти на bugreport.apple.com и сообщить им, что NSStatusItems должен быть перетаскиваемым.
В Википедии есть больше информации о Дополнениях Меню, включая некоторые ссылки на учебник по созданию своего собственного.