Контекстное меню в NSBrowser
При щелчке правой кнопкой мыши на элементе в NSBrowser
просмотр выбора не изменится. Вместо этого элемент, по которому щелкнули, получает фрейм и открывается контекстное меню. Выбранный элемент и элемент, нажатый правой кнопкой мыши, - две разные вещи.
В Finder (просмотр в браузере) операции в контекстном меню работают с элементом, по которому пользователь щелкает правой кнопкой мыши, и это то, чего я ожидаю. Если я сделаю то же самое с обычаем NSBrowser
контроль, операции применяются к выбранному элементу вместо.
Я прикрепил пустую NSMenu
в NSBrowser.menu
чтобы получить меню услуг. Есть NSBrowser
"s clickedRow
/clickedColumn
свойства, которые дают действительные значения при запросе из [NSMenuDelegate menuWillOpen]
, но это не помогает мне с сгенерированными системой пунктами меню Services.
Как настроить контекстное меню на элементе, щелкнувшем правой кнопкой мыши?
РЕДАКТИРОВАТЬ 2017-10-29
У меня есть подкласс NSBrowser для поддержки перетаскивания. Вот как добавляется контекстное меню. Это пустой NSMenu
, меню Сервисы добавляется автоматически.
- (void) awakeFromNib
{
NSMenu *m = [[[NSMenu alloc] init] autorelease];
m.delegate = self;
self.menu = m;
}