Это может быть не совсем то, что вы хотите, но это может помочь. У меня была проблема с получением строки, которая была нажата правой кнопкой мыши, чтобы получить контекстное меню. Я использую контурное представление, а не представление таблицы, и оно находится в главном окне, а не в диалоге.
У меня есть выход к моему внешнему виду. В объекте, который обрабатывает меню, у меня есть следующий метод:
-(void)setSelectionFromClick{
NSInteger theClickedRow = [myOutlineView clickedRow];
NSIndexSet *thisIndexSet = [NSIndexSet indexSetWithIndex:theClickedRow];
[myOutlineView selectRowIndexes:thisIndexSet byExtendingSelection:NO];
}
Я вызываю этот метод в начале каждого действия меню.
Выбранный ряд устанавливается независимо от того, какая кнопка нажата. Но выбор изменяется автоматически только при нажатии левой кнопки. Кстати, это также работает с нажатой клавишей Control.