NSMenuDelegate
NSMenuDelegate протокол определяет дополнительные методы, реализованные делегатами NSMenu объекты.
Наследование
Не применимый
Оператор импорта
Swift
import AppKit
Objective C
@import AppKit;
Доступность
Доступный в OS X v10.6 и позже.
-
Вызванный, чтобы позволить делегату возвращать цель и действие для ключевого вниз события.
Объявление
Параметры
menuОбъект меню, отправляющий сообщение делегации.
eventNSEventобъект, представляющий ключевое вниз событие.targetВозврат ссылкой целевой объект для пункта меню, соответствующего событию. Указать
nilзапрашивать цель меню.actionВозврат ссылкой селектор действия для пункта меню, соответствующего событию.
Возвращаемое значение
Если существует допустимый и включенный пункт меню, соответствующий этому ключу вниз даже, возвратиться
YEStrueпосле указания цели и действия. ВозвратитьсяNOfalseесли элемент отключен, при отсутствии элементов с тем ключевым эквивалентом или.Обсуждение
Если делегат не определяет этот метод, меню заполняется, чтобы узнать, имеют ли какие-либо элементы соответствующий ключевой эквивалент.
Оператор импорта
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 *)menuupdateItem:(NSMenuItem *)itematIndex:(NSInteger)indexshouldCancel:(BOOL)shouldCancelПараметры
menuОбъект меню, которому принадлежит
item.itemОбъект пункта меню, который может быть обновлен.
indexЦелочисленный индекс пункта меню.
shouldCancelНабор к
YEStrueесли вследствие некоторого пользовательского действия меню больше не должно выводиться на экран, прежде чем все пункты меню были обновлены. Можно проигнорировать этот флаг, возвратитьсяYEStrue, и продолжайте; или можно сохранить работу (чтобы сэкономить время в следующий раз, когда делегата вызывают), и возвратитьсяNOfalseостановить обновление.Возвращаемое значение
YEStrueпродолжать процесс. Если Вы возвращаетесьNOfalse, Ваш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 *)menuwillHighlightItem:(NSMenuItem *)itemПараметры
menuОбъект меню, собирающийся выделение элемент.
itemЭлемент, собирающийся быть выделенным.
Обсуждение
Только один элемент на меню может быть выделен за один раз. Если
itemnil, это означает, что все элементы в меню собираются быть невыделенными.Оператор импорта
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.
