У меня есть вопрос. Как добавить контекстное меню мыши в NSCollectionViewItem. В качестве попытки я также использую демонстрационное приложение Apple IconCollection. Я попытался перетащить NSMenu в IconViewPrototype.xib и подключить его к выходу меню представления в IB. Но при сборке и запуске щелкните правой кнопкой мыши, ничего не произошло. Я думаю NSBox также является подклассом для NSView, должно поддерживаться контекстное меню мыши.
Как я добавляю контекстное меню мыши в NSCollectionViewItem
Ответы (1)
В итоге я создал подкласс NSView
для использования в качестве представления для CollectionViewItem
. Там я установил делегата (подключенного в IB) и использовал его, чтобы поймать щелчок правой кнопкой мыши и открыть меню:
-(void)rightMouseDown:(NSEvent *)theEvent {
NSMenu *menu = [self.delegate menuForCollectionItemView:self];
[menu popUpMenuPositioningItem:[[menu itemArray] objectAtIndex:0]
atLocation:NSZeroPoint
inView:self];
}
Для этого по-прежнему требуется некоторый код для размещения меню в том месте, где щелкнул пользователь, но это только начало.
Если у кого-то есть более чистый метод, я бы хотел его услышать.
person
Bob Vork
schedule
12.11.2012
Я пришел сюда с тем же вопросом. Однако в вашем решении по-прежнему отсутствуют некоторые вещи: 1. Оно не обрабатывает щелчок ctrl (который должен вести себя как щелчок правой кнопкой мыши). 2. Он должен выбрать элемент, на который нажали (и отменить выбор других, если элемент еще не выбран).
- person Thomas Tempelmann; 23.05.2019