NSMenuDelegate
NSMenuDelegate
протокол определяет дополнительные методы, реализованные делегатами NSMenu
объекты.
Наследование
Не применимый
Оператор импорта
Swift
import AppKit
Objective C
@import AppKit;
Доступность
Доступный в OS X v10.6 и позже.
-
Вызванный, чтобы позволить делегату возвращать цель и действие для ключевого вниз события.
Объявление
Параметры
menu
Объект меню, отправляющий сообщение делегации.
event
NSEvent
объект, представляющий ключевое вниз событие.target
Возврат ссылкой целевой объект для пункта меню, соответствующего событию. Указать
nil
запрашивать цель меню.action
Возврат ссылкой селектор действия для пункта меню, соответствующего событию.
Возвращаемое значение
Если существует допустимый и включенный пункт меню, соответствующий этому ключу вниз даже, возвратиться
YES
true
после указания цели и действия. ВозвратитьсяNO
false
если элемент отключен, при отсутствии элементов с тем ключевым эквивалентом или.Обсуждение
Если делегат не определяет этот метод, меню заполняется, чтобы узнать, имеют ли какие-либо элементы соответствующий ключевой эквивалент.
Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.3 и позже.
Доступный как часть неофициального протокола до OS X v10.6.
См. также
performKeyEquivalent:
(NSMenu
)performActionForItemAtIndex:
(NSMenu
)
-
Вызванный, чтобы позволить делегату обновить пункт меню, прежде чем это будет выведено на экран.
Объявление
Swift
optional func menu(_
menu
: NSMenu, updateItemitem
: NSMenuItem, atIndexindex
: Int, shouldCancelshouldCancel
: Bool) -> BoolObjective C
- (BOOL)menu:(NSMenu *)
menu
updateItem:(NSMenuItem *)item
atIndex:(NSInteger)index
shouldCancel:(BOOL)shouldCancel
Параметры
menu
Объект меню, которому принадлежит
item
.item
Объект пункта меню, который может быть обновлен.
index
Целочисленный индекс пункта меню.
shouldCancel
Набор к
YES
true
если вследствие некоторого пользовательского действия меню больше не должно выводиться на экран, прежде чем все пункты меню были обновлены. Можно проигнорировать этот флаг, возвратитьсяYES
true
, и продолжайте; или можно сохранить работу (чтобы сэкономить время в следующий раз, когда делегата вызывают), и возвратитьсяNO
false
остановить обновление.Возвращаемое значение
YES
true
продолжать процесс. Если Вы возвращаетесьNO
false
, Вашmenu:updateItem:atIndex:shouldCancel:
не вызывается снова. В этом случае это - Ваша ответственность обрезать любые дополнительные элементы из меню.Обсуждение
Если Ваш
numberOfItemsInMenu:
метод делегата возвращает положительное значение, тогда Вашmenu:updateItem:atIndex:shouldCancel:
метод вызывают для каждого элемента в меню. Можно тогда обновить заголовок меню, изображение, и т.д для каждого пункта меню.Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.3 и позже.
Доступный как часть неофициального протокола до OS X v10.6.
-
Вызванный, чтобы позволить делегату указывать расположение дисплея для меню.
Объявление
Параметры
menu
Объект меню.
screen
Экран меню откроется на.
Возвращаемое значение
Прямоугольник меню должен быть выведен на экран в в координатах экрана.
Обсуждение
Когда меню собирается быть открытым на указанном экране, этот метод отправляется делегату.
Если Вы возвращаетесь
NSZeroRect
, или если делегат не реализует этот метод, то меню будет ограничено границами, подходящими для данного экрана. Возвращенный rect нельзя соблюдать во всех случаях, например, если он вынудил бы меню быть слишком маленьким.Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.6 и позже.
-
Вызванный, чтобы указать, что меню собирается выделить данный элемент.
Объявление
Swift
optional func menu(_
menu
: NSMenu, willHighlightItemitem
: NSMenuItem?)Objective C
- (void)menu:(NSMenu *)
menu
willHighlightItem:(NSMenuItem *)item
Параметры
menu
Объект меню, собирающийся выделение элемент.
item
Элемент, собирающийся быть выделенным.
Обсуждение
Только один элемент на меню может быть выделен за один раз. Если
item
nil
, это означает, что все элементы в меню собираются быть невыделенными.Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.5 и позже.
Доступный как часть неофициального протокола до OS X v10.6.
См. также
highlightedItem
(NSMenu
)
-
Вызванный, когда меню собирается открыться.
Объявление
Swift
optional func menuWillOpen(_
menu
: NSMenu)Objective C
- (void)menuWillOpen:(NSMenu *)
menu
Параметры
menu
Меню, собирающееся открыться.
Специальные замечания
Не изменяйте структуру меню или пунктов меню во время этого метода.
Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.5 и позже.
Доступный как часть неофициального протокола до OS X v10.6.
См. также
-
Вызванный после того, как меню закрылось.
Объявление
Swift
optional func menuDidClose(_
menu
: NSMenu)Objective C
- (void)menuDidClose:(NSMenu *)
menu
Параметры
menu
Закрывшееся меню.
Специальные замечания
Не изменяйте структуру меню или пунктов меню во время этого метода.
Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.5 и позже.
Доступный как часть неофициального протокола до OS X v10.6.
См. также
-
Вызванный, когда меню собирается быть выведенным на экран в начале сеанса отслеживания, таким образом, делегат может указать число элементов в меню.
Объявление
Параметры
menu
Объект меню, собирающийся быть выведенным на экран.
Возвращаемое значение
Число пунктов меню в меню.
Обсуждение
При возврате положительного значения меню изменено или удаляющими или добавляющими элементами. Недавно создаваемые элементы являются пробелом. После того, как меню изменено, Ваш
menu:updateItem:atIndex:shouldCancel:
метод вызывают для каждого элемента. При возврате отрицательной величины число элементов оставлено без изменений иmenu:updateItem:atIndex:shouldCancel:
не вызывается. Если можно заполнить меню быстро, можно реализоватьmenuNeedsUpdate:
вместоnumberOfItemsInMenu:
иmenu:updateItem:atIndex:shouldCancel:
.Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.3 и позже.
Доступный как часть неофициального протокола до OS X v10.6.
-
Вызванный, когда меню собирается быть выведенным на экран в начале сеанса отслеживания.
Объявление
Swift
optional func menuNeedsUpdate(_
menu
: NSMenu)Objective C
- (void)menuNeedsUpdate:(NSMenu *)
menu
Параметры
menu
Объект меню, собирающийся быть выведенным на экран.
Обсуждение
Используя этот метод, делегат может изменить меню путем добавления, удалив или изменив пункты меню. Если заполнение меню займет много времени, реализация
numberOfItemsInMenu:
иmenu:updateItem:atIndex:shouldCancel:
вместо этого.Проверка пункта меню происходит после того, как этот метод вызывают. Если меню обновляется, потому что пользователь нажал командную клавишу, только пункт меню с соответствующей командной клавишей проверен; если меню обновляется, потому что пользователь открыл его, то каждый пункт меню проверен.
Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.3 и позже.
Доступный как часть неофициального протокола до OS X v10.6.