NSButtonCell как флажок в NSTableVIew не выбирается - PullRequest
5 голосов
/ 30 ноября 2010

У меня есть NSTableVIew для целей множественного выбора с двумя столбцами, первый с NSButtonCell в качестве флажка, а другой в качестве заголовка.

Идея состоит в том, чтобы проверить элементы, которые будут добавлены после слов вмассив.

Проблема в том, что флажки не меняют свое состояние при нажатии на них.Я пытался подключить IBAction, но отправителем для деактивации является TableView, но не флажок

Какие-либо идеи (или ссылки) о том, как добиться такой функциональности?

1 Ответ

10 голосов
/ 12 февраля 2011

Исходя из того, что вы используете NSTableViewDataSource, вам нужно реализовать три метода:

- (void)tableView:(NSTableView *)aTableView setObjectValue:(id)anObject forTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex
- (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex
- (NSInteger)numberOfRowsInTableView:(NSTableView *)aTableView

Когда флажок установлен, вызывается первый метод. Если aTableColumn имеет ваши флажки, вы сохраните новое состояние, которое равно [anObject boolValue].

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

Последний метод сообщает табличному представлению, сколько будет строк.

См. документацию к источнику данных таблицы для получения более подробной информации, но я в значительной степени суммировал это здесь.

...