設定
私は持っていNSCollectionView
ます。にチェックボックスがありますView Prototype
。Card Title
とが入力されるようにバインディングを正常にセットアップしましたaction
。(下の画像1)
ゴール
CardModel
チェックボックスをクリックすると、View Prototype
すでにアクセスできる特定のものにアクセスする関数を実行したいと思います。次に、それに応じてデータを操作します。
リサーチ
私はSOでこの記事を見つけました: NSCollectionViewItem NSButton click のpresentedObject値を取得してください。これは私の状況をかなりよく説明しています。残念ながら、答えは特定のコードなしです。提案されているのは次のとおりです。
したがって、最初に、ボタンのセルの表現されたオブジェクトを、ボタンを所有するコレクション ビュー アイテムに設定します。(nib エディターでこれを行うことができます。) 次に、アクション メソッドで、ボタンのセルを取得し、次にセルの表現オブジェクト (アイテム)、アイテムの表現オブジェクトを取得します。
単純に思えますよね?
試みられた解決策
メソッドを作成cardCheckBoxClicked:
し、チェックボックスに接続します。
上記のアドバイスに従って、button cell
のコンセントrepresentedObject
をに接続し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
上記のアドバイスを誤解していましたか?必要なデータにアクセスするにはどうすればよいですか?
画像(参考)
バインディングの例
表現されたオブジェクト接続