Как бы я сделал перетаскиваемый значок Menubar для Mac OS X

Я нахожусь в процессе написания значка меню для приложения, которое я разрабатываю. Однако класс NSStatusBar не имеет метода, который позволял бы перетаскивать значок с помощью перетаскивания cmd+левой кнопкой мыши.

Как сделать значок строки меню перетаскиваемым с помощью кода Objective-C?

Спасибо :)


person Brock Woolf    schedule 25.01.2009    source источник


Ответы (1)


В настоящее время вы не можете сделать это с помощью NSStatusBar. NSMenuExtra будет вести себя так, как вы хотите, но, к сожалению, он не является частью общедоступного API Cocoa, и, насколько я понимаю (я сам его не использовал), требуется немного взлома, чтобы даже заставить его работать. Также NSStatusBar будет проще интегрировать в существующее приложение, а NSMenuExtra — это скорее отдельный пакет, загружаемый системой.

На мой взгляд, не стоит полагаться на частные API для добавления таких основных функций в ваше приложение. Я бы придерживался NSStatusBar, большинство пользователей привыкнут к поведению других приложений, и, если повезет, будущая версия Mac OS X позволит перетаскивать значок так же, как работает NSMenuExtra.

person Marc Charbonneau    schedule 25.01.2009
comment
cocoadevcentral.com/articles/000078.php — отличная статья о NSMenuExtras. Но я также рекомендую документированный NSStatusItem. - person mfazekas; 25.01.2009