2016-06-18 8 views
0

現在、セルベースのNSTableViews WITHバインディングを使用するプロジェクトがあります。代わりにビューを使用するようにプロジェクトを更新しています。セルでは、NSFormatterをコードでインスタンス化し、NSTableColumnのデータセルのフォーマッタプロパティに追加し、そのフォーマッタへの参照を保持し、プログラマチックにフォーマッタのプロパティを変更することができます。ビューベースのテーブルビューで同じことをする戦略はありません。ビューベースのNSTableViewsでNSFormatterへの参照を維持する

ビューベースのテーブルビューでは、プロトタイプビューのテキストフィールドにフォーマッタを設定できますが、そのフォーマッタもプロトタイプです。このフォーマッターは何回もインスタンス化されるので、私はプロトタイプ・フォーマッターへの参照を維持することができません。別の解決策として、フォーマッタのクラスでカスタムフォーマッタオブジェクトを作成し、tablecellviewのアウトレットをフォーマッタにドラッグしましたが、これはまったく機能しません。

ビューベースのテーブルビューで私のフォーマッタの動作をプログラムで調整できる必要があります。

+0

おそらく 'NSValueTransformer'のカスタムサブクラスがオプションです。 – vadian

+2

あるいは、デリゲートの 'tableView:viewForTableColumn:row:'メソッドでフォーマッタを設定してください。 – Willeke

+0

これはチケットです。デリゲートの呼び出しとバインディングは相互に排他的であると仮定しました。デリゲートコールでは、テキストフィールドフォーマッタを設定し、テキストフィールドに文字列値を指定しません。デリゲートの呼び出しの後、テーブルビューのバインディングはテキストフィールドの文字列値を設定します。正式な答えを作成し、それを受け入れます – blackirishman

答えて

1

デリゲートのtableView:viewForTableColumn:row:メソッドでフォーマッタを設定できます。

関連する問題