質問

カスタムがあります NSCell (実際にはサブクラス化 NSTextFieldCell)、スタンドアロンの編集者との両方で使用されています NSTableColumn (コアデータにバインドされています NSArrayController)。ユーザーが値を変更したら、電話します -[NSCell setObjectValue:] 値を更新する(それはanです NSNumber)。これは、スタンドアロンのエディターで機能します。なぜなら、それが完了したとき、私は手動でバインディングを更新するからです。

[self setObjectValue:[NSNumber numberWithInt:newValue]];

そのステップ(バインドフィールドの更新)は、セルが中にあるときに欠落しています NSTableView - ユーザーの編集中に更新された値が表示されます(マウストラッキング付き)が、それが終わるとすぐに、値は永続的な値に戻ります。

NSTableColumn の鍵に縛られています -[NSArrayController arrangedObjects]. 。私が欠けている「コミットする」または「更新バインディング」への何らかの呼びかけはありますか?ドキュメントに有用な機能が見つかりませんでした NSCell また NSTableView.

役に立ちましたか?

解決

これを解決するために、私は実装しました -tableView:setObjectValue:forTableColumn:row: 私の中で NSArrayController サブクラス。私は自分のインスタンスを取得します NSManagedObject 行の引数からサブクラス、その後、オブジェクトバリュー引数から新しいモデルを手動で割り当てます。テキストセルが自動的にこれを行うとき、これが必要な理由はまだわかりませんが、機能します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top