NSButton в NSTableCellView: как найти нужный objectValue? - PullRequest
4 голосов
/ 18 февраля 2012

У меня есть основанный на представлении NSTableView, который заполняется через привязки.Мои textFields & imageViews связаны со свойствами objectValue объекта NSTableCellView.

Если я хочу иметь кнопку редактирования / информации в моем NSTableCellView:

  1. Кто должен быть целью действия кнопки?

  2. Как цель получит objectValue, связанную с ячейкой, в которой находится кнопка?

В конечном итоге я хотел бы показать всплывающее окно / лист на основе objectValue.

Ответы [ 2 ]

14 голосов
/ 14 мая 2012

Я нашел дополнительный ответ: Ответ выше предполагает, что вы используете привязки в вашем табличном представлении.Так как я отчасти новичок, я нашел способ получить кнопку внутри ячейки табличного представления.

- (IBAction)getCellButton:(id)sender {
     int row = [xmlTable rowForView:sender];
}

Таким образом, когда вы нажимаете кнопку внутри строки, вам не нужно иметьвыбранная строка.Он вернет значение int строки, совпадающее с источником данных в массиве без привязок.

7 голосов
/ 22 февраля 2012

Ваш класс контроллера может быть целью.Чтобы получить значение объекта:

- (IBAction)showPopover:(id)sender {
    NSButton *button = (NSButton *)sender;
    id representedObject = [(NSTableCellView *)[button superview] objectValue];
}

Или используйте подкласс NSTableCellView, сделайте вид ячейки целью действия кнопки и вызовите [self objectValue], чтобы получить объект.

...