0

を含む各セルを持つ NSTableView がありNSPopUpButtonCellます。のアクションを、選択したインデックスを単純にチェックするメソッドに設定しNSPopUpButtonCellました (インデックスを保存してテーブルをリロードできるようにするため)。

thePopUpButtonCell.action = @selector(popUpChangedValue);

-(void)popUpChangedValue {

    NSLog(@"%ld", [thePopUpButtonCell indexOfSelectedItem]);

}

何を選択しても、選択されたインデックスは 0 ではありませんが、0 であると表示されます。何が原因か知っていますか?

4

2 に答える 2

3

私がこれを行う方法は、バインディングを使用することです。ポップアップの選択の値を保持するには、配列内のフィールド (NSDictionary 内のキーと値のペア) が必要です。IB では、コンテンツ配列が配列にバインドされた配列コントローラーがあります (これには、上記の辞書が含まれます)。ポップアップのある列には、辞書内のキー名のモデル キー パスを使用して配列コントローラーの ArrangeObjects にバインドされた Selected Value があります。ポップアップで選択を変更すると、バインディングの魔法によって配列の値が更新されます。

于 2012-08-04T23:35:37.730 に答える
0

thePopUpButtonCellあなたもおそらくnilのように見えますか?おそらく保持などに問題があります。

于 2012-08-04T23:06:53.820 に答える