Как я добавляю контекстное меню мыши в NSCollectionViewItem

У меня есть вопрос. Как добавить контекстное меню мыши в NSCollectionViewItem. В качестве попытки я также использую демонстрационное приложение Apple IconCollection. Я попытался перетащить NSMenu в IconViewPrototype.xib и подключить его к выходу меню представления в IB. Но при сборке и запуске щелкните правой кнопкой мыши, ничего не произошло. Я думаю NSBox также является подклассом для NSView, должно поддерживаться контекстное меню мыши.


person user1377049    schedule 05.05.2012    source источник


Ответы (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
comment
Я пришел сюда с тем же вопросом. Однако в вашем решении по-прежнему отсутствуют некоторые вещи: 1. Оно не обрабатывает щелчок ctrl (который должен вести себя как щелчок правой кнопкой мыши). 2. Он должен выбрать элемент, на который нажали (и отменить выбор других, если элемент еще не выбран). - person Thomas Tempelmann; 23.05.2019