TableView создан в IB, и желательно, чтобы он имел только один столбец с флажками. Один из способов создания флажков, чтобы перетащить NSButtonCell в колонку с помощью IB, а затем в соответствии с протоколом NSTableViewDataSource реализации:В представлении таблицы с NSButtonCell в столбце, который создает NSButtonCell (s)?
- (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
Поэтому, когда объект класса выступает в качестве источника данных для столбца в TableView, и столбец содержит такие объекты, как флажки для каждой строки, является ли класс, предоставляющий только данные состояния включения/выключения для флажков, или он также предоставляет объекты флажка?
Связанные вопросы:
- Является TableView создания и содержащий NSButtonCells?
- Если ответ на 1 - да, как можно установить/изменить свойства NSButtonCell, например, его название?
- Вместо создания TableView, создающего и поддерживающего NSButtonCells, может ли класс источника данных создать их? То есть вместо того, чтобы использовать IB для перетаскивания NSButtonCell в столбец, можно ли добавить NSButtonCells в такой метод, как awakeFromNIB?
- Есть ли способ смешать типы объектов ячейки в данном столбце. Например, можно ли иметь текстовый заголовок в столбце1row1, а затем флажок в столбце1row2?
Спасибо.
Я прекрасно понимаю модель, вид, контроллеры. Я думаю, что причина, по которой я не получил подробных ответов на мой вопрос (от вас или у кого-либо), состоит в том, что, возможно, подробности о TableView больше не известны. Мне пришлось смотреть на многие книги по какао, прежде чем я нашел тот, который, как я думаю, дает подробную информацию: Программирование Cocoa® Скотт Ангиш, Эрик М. Бак, Дональд А. Яктман (опубликовать дату 2002) имеет раздел о TableView, который дает подробности что ни одна из новых книг по какао, которые я рассматривал, по-видимому, не имеет. – bhartsb
Я уже знаю, как установить состояние флажка. То, что я не знал, было вопросом № 2: как можно установить/изменить свойства NSButtonCell, например, его название? И по названию набора, я имею в виду, что флажок каждой ячейки (в одной таблице столбцов) имеет свой собственный заголовок, а не все из них с тем же названием. Тем не менее, как иметь строки в одном столбце в некоторых ячейках, флажок и другие ячейки содержат textfieldCell (например, для заголовков разделов для группировки строк флажков). – bhartsb
В книге указано, что по умолчанию записи в таблице являются объектами NSTextFieldCell, с одним объектом ячейки для каждого столбца, который разделяется всеми строками этого столбца. Поэтому, чтобы установить заголовок флажка, вы должны: a) подкласс NSTableColumn, b) переопределить метод - (id) dataCellForRow: (int) row, а в теле этого переопределенного метода получить общий объект ячейки столбца (в в этом случае флажок NSButtonCell перетащил в colummn в IB) из суперкласса и установил уникальный заголовок. – bhartsb