Изменение порядка элементов NSStatusItem вдоль строки состояния
Я пытаюсь добавить функциональность в свое приложение строки состояния для Mac OS X. Я хотел бы иметь возможность перемещать свой элемент вдоль панели, как вы можете это сделать для встроенных инструментов ОС, таких как Bluetooth или значок WiFi.
ура
3 ответа
То, что вы ищете, это NSMenuExtra
и не NSMenuItem
,
Apple использует NSMenuExtra
для значков системного меню, включая Wi-Fi и Bluetooth. Хотя похоже на обычный NSMenuItem
, NSMenuExtra
имеет некоторые специальные функции, в частности, чтобы сохранить их относительный порядок после перезагрузки, и Command-Draggable пользователем.
К несчастью, NSMenuExtra
полностью недокументирован, поэтому, если вы ориентируетесь на Mac App Store, лучше придерживаться стандартного NSMenuItem
, В противном случае, есть куча учебников о том, как создать NSMenuExtra
, Например, вот два из них:
Обновление для macOS Sierra: Apple улучшена NSStatusItem
, Элементы теперь могут быть переупорядочены с помощью drag-перетаскивания. Это работает для всех пунктов меню Apple и всех сторонних приложений.
Практически все причины, по которым вы можете захотеть использовать NSMenuExtra
были удалены сейчас, и это здорово. Итак, ответ теперь просто использовать NSStatusItem
, Никаких дальнейших действий не требуется.
К сожалению, нет "хорошего" способа сделать это, однако вы можете проверить этот вопрос на предмет взлома, который может сделать это: