NSButtonCell はバインドを公開するため、セルベースの NSTableView でこれを行っていると仮定しますが、NSTableColumn をバインドする必要があり、値のみを公開するtitle
ため、NSTableView のコンテキストでは役に立ちません。NSButtonCells を含む NSTableColumns のバインディング。これはフレームワークの欠点であり、多くの人が取り組んできたことを Google が明らかにしています。
-tableView:dataCellForTableColumn:row:
これに対する 1 つのアプローチは、自分のメソッドと-tableView:willDisplayCell:forTableColumn:row:
デリゲート メソッドでモデルからタイトルを更新することです。これには、基になるモデルが変更されたときに KVO 経由で更新されないという欠点があります。それがアプリケーションにとって重要な場合、1 つの回避策はvalue
、チェックボックスのモデル keyPath に依存するチェックボックスのモデル keyPath を作成することtitle
です。このようにして、タイトルが変更されると、KVO は値の変更に関する通知を送信します。これにより、行が再描画され、タイトルがデリゲート メソッドによって更新されます。
この質問は古いことに気づきましたが、最近のより簡単なアプローチは、NSView ベースの NSTableViews を使用することです。このようにすると、Value バインディングと Title バインディングの両方 (およびその他のバインディング) を使用できるファーストクラスの NSButton コントロールを使用できます。Lion より前のバージョンの OS をサポートすることを心配していなければ、多くの場合、より実行可能なアプローチです。