Контекстное меню в 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;
}

0 ответов

Другие вопросы по тегам