Создание элементов состояния
Вы получаете панель состояния системы с systemStatusBar
метод класса; не выделяйте экземпляр сами. Вызвать statusItemWithLength:
создать новый элемент состояния и выделить площадь для него в строке меню. Передайте сумму пространства в пикселях, необходимо вывести на экран элемент состояния. Можно использовать константы NSSquareStatusItemLength
или NSVariableStatusItemLength
сделать ширину тем же как толщина строки состояния (как возвращено методом thickness
) или переменная на основе содержания элемента, соответственно. Используйте прежнего при отображении значка и последнего при отображении статического текста.
Поскольку панель состояния системы совместно используется всеми приложениями, она не может сохранить ссылки на объекты элемента состояния каждого приложения. Вместо этого каждое приложение ответственно за сохранение его собственных элементов состояния. Каждый элемент состояния тогда связывается со строкой состояния как ее изменения конфигурации. Когда освобождено, элемент состояния удаляет себя из строки состояния. Соблюдая нормальные правила управления памятью Какао, необходимо сохранить объект, возвращенный statusItemWithLength:
иметь в наличии его.
Как только у Вас есть новый объект элемента состояния, можно присвоить его заголовок, меню, целевое действие, подсказка, и т.д.
В следующем примере элемент состояния добавляется к строке меню и присвоил меню.
- (void)activateStatusMenu |
{ |
NSStatusBar *bar = [NSStatusBar systemStatusBar]; |
theItem = [bar statusItemWithLength:NSVariableStatusItemLength]; |
[theItem retain]; |
[theItem setTitle: NSLocalizedString(@"Tablet",@"")]; |
[theItem setHighlightMode:YES]; |
[theItem setMenu:theMenu]; |
} |
В этом примере кода предположите, что Ваш объект имеет переменную экземпляра, theMenu
, это содержит объект NSMenu, возможно разархивированный от файла пера. Другая переменная экземпляра, theItem
, содержит сохраняющийся элемент состояния. При выполнении этого кода меню назвало «Планшет» (или локализованная версия при наличии) добавляется к правой стороне строки меню. Меню доступно из каждого приложения, пока Ваше приложение работает, и элемент состояния существует.