2009-08-07 4 views
0

У меня есть NSTableView, и я хочу что-то делать всякий раз, когда элемент selectedCell изменяется.Когда выбран selectedCell?

Итак, мой взгляд таблица называется Tableview, и это то, что я хочу заметить:

[tableView selectedCell] 

Я попытался с помощью ключ-значение наблюдения, но это не похоже на работу, или, может быть, я был делать неправильно. Есть идеи?

ответ

1

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

Кроме того, свойства, которых не существует, вдвойне не наблюдаются. В документации для NSTableView и NSOutlineView упоминается не метод «selectedCell». Вы должны предположить, что их нет.

Если вы хотите узнать, когда пользователь выбирает другую строку, выберите делегат таблицы; он отправляет для этого сообщения делегата, если вы ответите им.

+0

selectedCell является методом NSControl, которого NSTableView наследует от. Есть ли другой способ, по которому я могу быть уведомлен о том, что курсор находится в новой ячейке в NSTableView? –

+0

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

+0

Кстати, если вы просто пытаетесь сделать ваши данные доступными для редактирования, работа на уровне ячейки за ячейкой - это не способ сделать это. Либо быть источником данных, либо реализовывать 'tableView: setObjectValue: forTableColumn: row:' или привязать столбец таблицы к контроллеру, содержащему массив, и убедиться, что контроллер разрешает редактирование, а объекты модели изменяются (какими они должны быть, если только вы сделали их иначе). –

-1

NSTableView будет использовать один и только один объект dataCell для каждой колонки. selectedCell - неправильный путь. Вы можете использовать selectedColumn, чтобы получить выбранный столбец, а затем запросить его dataCell.

А: Я думаю, что вы ищете методы делегата NSTableView tableViewSelectionDidChange: и tableViewSelectionIsChanging:

Смежные вопросы