2

階層データ モデルへのアクセスを提供する NSTreeController にバインドされた単純な NSOutlineView があります。これをマスター/詳細ビューにしたいと思います。選択したノードに関する情報がいくつかのバインドされたビューに表示されます。しかし、私はたくさんの行き止まりにぶつかっています:

1) NSOutlineView のドキュメントには次のように書かれています。

次のような一部のデリゲート メソッドは、まだ NSOutlineViewDelegate プロトコルに移行されていません。

OutlineViewSelectionDidChange:

OutlineViewSelectionIsChanging:

...これは、まさに私がトラップしたかったイベントです。ドキュメンテーションは日付が付けられていませんが、「まだ移行されていません」は「息を止めないでください」と読むべきだと思います。

2) アウトライン ビューを IBOutlet にアタッチすると、一部の選択イベント処理が提供されますが、マウス クリック時のみです。キーボードのカーソル キーを使用して階層をナビゲートしても、イベントは発生しません。

3) NSTreeController は、この本当に基本的な機能をサポートしていないようです。

それで...何か足りないのですか?または、NSTreeController をサブクラス化するよりも、このタスクを達成する簡単な方法はありますか?

前もって感謝します...

4

1 に答える 1

3

もう少し実験を行う必要があります。実際、outlineViewSelectionDidChange: と OutlineViewSelectionIsChanging: は両方とも現在動作しています (少なくとも OSX 10.8 では)。使用している OS X のバージョンにこれらのデリゲート メソッドがない場合でも、オブザーバーを追加して通知を受け取ることができます。オブザーバーは 10.0 以降存在しています。

于 2012-09-04T05:46:53.587 に答える