4

バインディングを介して取り込まれるビューベースの NSTableView があります。私の textFields と imageViews は NSTableCellView の objectValue のプロパティにバインドされています。

NSTableCellView に編集/情報ボタンが必要な場合:

  1. ボタンのアクションのターゲットは誰ですか?

  2. ターゲットは、ボタンがあるセルに関連付けられている objectValue をどのように取得しますか?

最終的には、objectValue に基づいてポップオーバー/シートを表示したいと思います。

4

2 に答える 2

15

追加の回答を見つけました: 上記の回答は、テーブル ビューでバインディングを使用していることを前提としているようです。私は一種の初心者なので、テーブルビューセル内にボタンを取得する方法を見つけました。

- (IBAction)getCellButton:(id)sender {
     int row = [xmlTable rowForView:sender];
}

この方法では、行内のボタンをクリックするときに、行を選択する必要はありません。バインディングなしで配列内のデータソースと一致する行の int 値を返します。

于 2012-05-14T01:43:27.093 に答える
7

コントローラクラスをターゲットにすることができます。オブジェクト値を取得するには:

- (IBAction)showPopover:(id)sender {
    NSButton *button = (NSButton *)sender;
    id representedObject = [(NSTableCellView *)[button superview] objectValue];
}

または、のサブクラスを使用しNSTableCellViewて、セルにボタンのアクションのターゲットを表示させ、を呼び出し[self objectValue]てオブジェクトを取得します。

于 2012-02-22T18:24:13.983 に答える