Настройка
У меня есть NSCollectionView
. У меня есть флажок в View Prototype
. Я успешно настроил привязки, поэтому Card Title
и action
заполняются. (изображение 1 ниже)
Цель
Я хотел бы, когда я устанавливаю флажок, запускать функцию, которая обращается к конкретному CardModel
, к которому уже может получить доступ View Prototype
. Затем я буду соответствующим образом манипулировать его данными.
Исследования
Я нашел эту статью на SO: Получить значения представленного объекта NSCollectionViewItem NSButton click, что довольно хорошо описывает мою ситуацию. Ответ, к сожалению, без конкретного кода. Вот что предлагается:
Итак, во-первых, установите представленный объект ячейки вашей кнопки в элемент представления коллекции, которому принадлежит кнопка. (Вы можете сделать это в редакторе пера.) Затем в вашем методе действия получите ячейку кнопки, затем представленный объект ячейки (который является элементом), затем представленный объект элемента.
Кажется достаточно простым, не так ли?
Попытки решения
Я создаю метод cardCheckBoxClicked:
и подключаю его к флажку.
В соответствии с советом выше, я подключаю розетку representedObject
button cell
к Card Collection View Item
. (изображение 2)
Затем я пытаюсь получить Card Collection View Item
representedObject
в коде.
От MainWindowController.h
:
-(IBAction)cardCheckBoxClicked:(id)sender
{
CardModel* cModel = [[sender representedObject] representedObject];
NSLog(@"card title: %@",cModel.title);
}
Ошибка
Когда я нажимаю на флажок, я получаю следующую ошибку:
-[NSButton representedObject]: unrecognized selector sent to instance 0x6080001581b0
Вопрос!
Итак, как мне получить доступ к объекту, представленному button cell
? Я неправильно понял совет, данный выше? Как я могу успешно получить доступ к нужным мне данным?
Изображения (ссылка)
пример привязки
соединение представленного объекта