Вам нужно, чтобы представление таблицы было основано на представлении, а не на ядре. Самый простой способ IMHO - установить флажок в первый столбец вашего табличного представления с помощью построителя интерфейса. Он должен быть родным из вашего текстового поля. Я предполагаю, что вы хотите, чтобы первый столбец просто содержал флажок, и ничего больше. В этом случае вам нужно скрыть текстовое поле, чтобы оно не мешало этому флажку (установите флажок «скрытый» в построителе интерфейса для текстового поля).
Вариант 1: создать подкласс NSTableCellView, назовите его MyTableCellViewWithCheckbox, и дать ему @property (nonatomic,strong) NSButton *checkbox;
Измените поле пользовательского класса из NSTableCellView в MyTableCellViewWithCheckbox для первой колонки и подключите к сетевой розетке.
Вариант 2: (я еще не протестировал его, но думаю, что он должен работать.) Установите метку флажка на 13. Чтобы извлечь флажок позже из ячейки представления таблицы, вы можете использовать метод viewWithTag
,
Далее необходимо приложить действия к вашему флажку, так что вы должны создать IBAction
на ваш контроллер представления (не на MyTableCellViewWithCheckbox.) В остросюжетном методе вы можете использовать tableviews rowForView
метод, чтобы получить индекс строки, флажок, который пользователь просто нажал. Новое состояние может быть получено непосредственно от отправителя действия (это NSButton).
Кроме того, не забывайте, что awakeFromNib
может быть вызван несколько раз в вашем контроллере вида, если у вас есть вид таблицы в нем - один раз для каждой ячейки представления таблицы, которую вы создаете (это заняло у меня некоторое время, чтобы разобраться.)
Благодарим вас за информацию. Я действительно смог сделать это с помощью NSView на базе сотовой сети, и он быстрее, чем на основе таблиц. Я постараюсь ответить также. – vy32