/ / Вземете ред от NSPopUpButton с изглед, базиран на NSTableView - aim-c, какао, създаване на интерфейс, nstableview

Получаване на ред от NSPopUpButton в изглед въз основа NSTableView - цел-c, какао, интерфейс-строител, nstableview

Имам изглед на базата на изглед с един ред, съдържащ NSPopupButtons. Когато потребителят промени popUpButton, трябва да взема реда на таблицата, в който се съдържа този popUpButton.

Първо очаквах да се сдобия с редицата

NSInteger clickedRow = [tableView rowForView: ((NSPopUpButton*) sender)];

Но подателят на действието винаги е а NSMenuItem не обект на NSPopUpButton. NSMenuItem обаче не е изглед, така че не мога да го използвам rowForView с това.

В момента моята IBAction изглежда така:

- (IBAction)changedPopUp:(id)sender {
NSMenuItem* selectedMenuItem = ((NSMenuItem*) sender);
NSPopUpButton* popupButton = (NSPopUpButton*)[selectedMenuItem view];
NSInteger clickedRow = [tableView rowForView:popupButton];
//[...]
}

Но свойството view не се задава автоматично и ми се струва доста неудобно да го задавам ръчно за всеки NSMenuItem.

Няма ли лесен начин да получите реда на таблицата?

Отговори:

0 за отговор № 1

Не задавайте действие и цел за всеки NSMenuItem, Задайте действието и целта за NSPopupButton вместо. Тогава, sender ще бъде NSPopupButton например и можете да използвате rowForView.

Недостатъкът е, разбира се, че не можете да извършвате различни действия за различни елементи от менюто.