Изменение порядка элементов 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, Никаких дальнейших действий не требуется.

К сожалению, нет "хорошего" способа сделать это, однако вы можете проверить этот вопрос на предмет взлома, который может сделать это:

Как перетащить NSStatusItems

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