NSTableView: Как вы можете выделить элемент правой кнопкой мыши? - PullRequest
3 голосов
/ 03 октября 2011

У меня есть NSTableView, к которому элементы добавляются без вмешательства пользователя.Когда пользователь возвращается в диалоговое окно, содержащее NSTableView, и щелкает элемент, этот элемент выделяется.Однако этот элемент не выделяется, если щелкнуть правой кнопкой мыши.Есть ли способ выделить элемент, по которому щелкнули правой кнопкой мыши?

В настоящее время у меня есть следующее:

void Dialog::menuAction(ui::Menu::Item* item)
{ 
  // Highlight the item clicked
  [tableView row:item select:YES]
  ...
}

Но, похоже, это не работает.

Ответы [ 2 ]

1 голос
/ 10 октября 2011

Это может быть не совсем то, что вы хотите, но это может помочь. У меня была проблема с получением строки, которая была нажата правой кнопкой мыши, чтобы получить контекстное меню. Я использую контурное представление, а не представление таблицы, и оно находится в главном окне, а не в диалоге.

У меня есть выход к моему внешнему виду. В объекте, который обрабатывает меню, у меня есть следующий метод:

-(void)setSelectionFromClick{

NSInteger theClickedRow = [myOutlineView   clickedRow];

NSIndexSet *thisIndexSet = [NSIndexSet indexSetWithIndex:theClickedRow];
[myOutlineView selectRowIndexes:thisIndexSet byExtendingSelection:NO];
}

Я вызываю этот метод в начале каждого действия меню.

Выбранный ряд устанавливается независимо от того, какая кнопка нажата. Но выбор изменяется автоматически только при нажатии левой кнопки. Кстати, это также работает с нажатой клавишей Control.

0 голосов
/ 14 апреля 2017

Я думаю, что вы должны создать подкласс NSTableView и переопределить OnMouseUp и OnMouseDown, чтобы возвращать события щелчка левой кнопкой мыши, когда вы получаете события щелчка правой кнопкой мыши.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...