0

NSTableViewの設定を保存するには(親切の自動保存機能を利用するのが理想的)、親の各項目にはどのような方法が良いですか?NSTreeController?私は基本的に、iTunesが各プレイリストの列設定を個別に保存する方法を再現することを検討しています。親アイテムごとにNSTableViewの設定をどのように保存しますか?

私は多くのカラムを持っていますが、個々のカラムサイズなどを手動で保存することは望ましくありません。また、Core Dataも使用しています。この情報を保持する。

更新

私はNSTableViewの列設定のNSDictionary表現を保存して読むことが容易になり、いくつかのコード(a Category from Daniel Jalkut)を発見しました。そこで私は、現在のエンティティのビューの設定を保存している、私のCore Dataエンティティにバイナリ属性を作成しました。

私ができることを望むのは、エンティティの各インスタンスが選択されるときに自動的に設定を取得することです。私はNSTreeControllerのKey-Value Observationでこれを試してみましたが、残念ながら適切な通知がありません。新しいノードの設定で上書きする前に、以前のノードの設定を保存できるように、私は離れているアイテムを知りたいと思います。

@"selection"@"selectedObjects"、および@"selectedIndexPaths"を試しましたが、すべてoptionsという引数があり、どれも正しく動作していないようです。私は適切な時に通知を受け取りますが、プロパティの変更が送信する"change"辞書には有用な情報はありません。

答えて

2

私は上記にリンクされたNSTableView+RSAutosavingカテゴリを使用することにしました(Daniel JalkutとRed Sweater Softwareの礼儀あり)。私はこのNSDictionaryを私のCore Data親エンティティのバイナリデータ属性として保存します(ソート情報を別々に保存するために別のものを作成しました)。

次に、私のウィンドウコントローラは、NSOutlineViewから2つの通知を聞いてきます。 @"NSOutlineViewSelectionIsChangingNotification"通知では、NSTreeControllerの選択は古いノードです。私はこの時点でNSTableViewの設定を保存します。次に、@"NSOutlineViewSelectionDidChangeNotification"通知で、新しいノードの設定を読み込みます。これは魅力のように機能します。

+0

あなたのソリューションを放映していただきありがとうございます。それもポジションを保存しました... –

関連する問題