Методы для управления панелью инструментов
Можно определить высоту панели инструментов и имеет ли она элементы переполнения путем выполнения процедур, описанных ниже.
Определение, имеет ли Панель инструментов Элементы Переполнения
Если панель инструментов неспособна вывести на экран в настоящее время конфигурируемые элементы панели инструментов всего пользователя, она продвигает дополнительные элементы в меню переполнения и выводит на экран значок меню переполнения как показано на рисунке 1.
Приложение может определить, имеет ли панель инструментов элементы переполнения путем сравнения числа элементов, возвращенных методом items
с числом элементов, возвращенных visibleItems
метод как показано в Перечислении 1. Если эти значения отличаются, то панель инструментов имеет элементы в меню переполнения.
Пример кода перечисления 1, чтобы протестировать, если панель инструментов имеет элементы переполнения
int numberOfItems=[[theToolbar items] count]; |
int numberOfVisibleItems=[[theToolbar visibleItems] count]; |
if (numberOfItems != numberOfVisibleItems) { |
// toolbar has overflow items |
} |
Вычисление высоты панели инструментов
Несмотря на то, что NSToolbar в настоящее время не обеспечивает метод для возврата высоты панели инструментов, просто вычислить то значение. Вы вычитаете высоту представления содержания окна от высоты окна.
Если панель инструментов скрыта, функция Objective C в Перечислении 2 вычисляет высоту панели инструментов на окне, возвращаясь 0.
Objective C перечисления 2 функционирует для вычисления высоты панели инструментов
float ToolbarHeightForWindow(NSWindow *window) |
{ |
NSToolbar *toolbar; |
float toolbarHeight = 0.0; |
NSRect windowFrame; |
toolbar = [window toolbar]; |
if(toolbar && [toolbar isVisible]) |
{ |
windowFrame = [NSWindow contentRectForFrameRect:[window frame] |
styleMask:[window styleMask]]; |
toolbarHeight = NSHeight(windowFrame) |
- NSHeight([[window contentView] frame]); |
} |
return toolbarHeight; |
} |