0

私は NSTableView を NSArrayController にバインドしています。私のモデルには BOOL フィールドがあります。その値を列にバインドしようとしています。正しく表示されます (値が YES の場合は 1、値が NO の場合は 0)、読み取り専用です。=(値を編集しようとしても送信できません-Enterキーを押しても何も起こらず、セッターは呼び出されません。列は編集可能です。

IB で正常にバインドできます。通常どおりバインドするだけで、すべて動作します。しかし、私はプログラムで同じことを行うことはできません=(

それが列の作成および追加方法です。

NSTableColumn *column = [[[NSTableColumn alloc] initWithIdentifier:@"ok"] autorelease];
[column setEditable:YES];
[[column headerCell] setStringValue:@"OK"];
[column bind:@"value" toObject:self.arrC withKeyPath:@"arrangedObjects.ok" options:nil];
[table addTableColumn:column];

BOOL 値にのみ問題があります。同じ列を他のフィールドにバインドすると (keyPath を変更するだけで)、すべて正常に動作します。

4

4 に答える 4

1

それは読み取り専用です =(。値を編集しようとしているときに送信できません-Enterキーを押しても何も起こらず、セッターは呼び出されません。列は編集可能です。

そして、コード スニペットで:

[column setEditable:NO];

あなたの列は編集できません。そのため、編集は機能しません。に変更NOYESます。

ところで、この値をチェックボックスではなくテキストとして表示する理由はありますか?

于 2009-06-25T22:21:57.760 に答える
0

セルではなく、テーブル列をバインドする必要があります。

于 2009-06-25T02:32:13.750 に答える
0

値変換、具体的には NSNegateBooleanTransformerName が必要です。Google for Apple の「Value Transformer プログラミング ガイド」

于 2009-10-08T15:36:30.503 に答える
0

あなたのアレイコントローラーであると私が想定しているarrCにバインドされているものは何ですか?

arrC は配列にバインドされていますか? コントローラーにバインドされている配列内のオブジェクトは何ですか? Coredata エンティティ? NSMutableDictionaries?

于 2009-06-29T04:02:14.433 に答える