Щелчок по нажатию клавиши "Control" не изменяет выбор в IKImageBrowserView, щелчок правой кнопкой мыши или щелчок двумя пальцами

Я добавил контекстное меню в IKImageBrowserView,

Когда пользователь щелкает правой кнопкой мыши (мышь) или двумя пальцами (трекпад) изображение в IKImageBrowserView, выбор изменится на это изображение, и появится контекстное меню.

Когда пользователь нажимает кнопку управления (мышь или трекпад), выбор не изменяется, и появляется контекстное меню.

Поскольку контекстное меню относится к выбранному изображению, я предпочитаю, чтобы выбор изменялся при вызове контекстного меню.

  • Могу ли я сделать IKImageBrowserView изменить выбор также по нажатию клавиши управления (мышь и трекпад)?
  • Могу ли я прикрепить контекстное меню не к IKImageBrowserView но для одного элемента / изображения IKImageBrowserView?

1 ответ

Решение

Если вы сделаете подкласс IKImageBrowserView и переопределите menuForEvent:Вы можете сделать это:

- (NSMenu *)menuForEvent:(NSEvent *)event {
    NSUInteger idx = [self indexOfItemAtPoint:[self convertPoint:[event locationInWindow] fromView:nil]];

    if (idx == NSNotFound) {return nil;}

    if (![self.selectionIndexes containsIndex:idx]) {
        [self setSelectionIndexes:[NSIndexSet indexSetWithIndex:idx] byExtendingSelection:NO];

    }

    return self.menu;
}
Другие вопросы по тегам