2012-03-16 6 views
4

ドキュメントを掘り下げた後で、オブジェクトのインデックスパスをNSOutlineViewまたはNSTreeControllerにバインドするのは、それほど簡単ではありません。結果として、私はそれらを必要とする何かをする必要があるときはいつでも、インデックスパスを自分でアセンブルしようとすると、実際には醜いコードを書くことになりました。NSTreeControllerまたはNSOutlineViewでオブジェクトのNSIndexPathを取得するためのきれいな方法はありますか?

[[NSIndexPath indexPathWithIndex:<blah>] indexPathByAddingIndex: <blah>]よりもこれを行う良い方法はありますか?

答えて

2

あなたは簡単そうのようなパスを構築することができます

NSUInteger indexes[4] = {2, 3, 1, 0}; 
NSIndexPath* path = [NSIndexPath indexPathWithIndexes:indexes length:4]; 

は、特定のモデルオブジェクトのインデックスパスを取得するには、my answer to this questionを見ています。

+2

'[_treeController.arrangedObjects descendantNodeAtIndexPath:[NSIndexPath indexPathWithIndex:[someOutline selectedRow]]]'は、私が今までに目撃したAPIの中で最も巨大な構造体/ _bunglesの1つでなければなりません。アップルは自分自身の*恥ずかしさ*する必要があります。 –

+1

修正。 'NSTreeController'は一般的にAppleの最高の時ではありません。 –

+1

待って、それはさらに悪い..単に "ツリー制御"状況で強調表示されたノードの "値"を取得する必要があります.. [[[_TreeController.arrangedObjects descendantNodeAtIndexPath:[NSIndexPath indexPathWithIndex:[sentender selectedRow]]] shownObject] representObject] 'Lol。そのダブル 'representObject' _私はバナナをドライブ!彼らがクラックしていたようなものです... "ねえ、それを' objectValue'と呼んでください "、"いいえ、私は 'representObject'、whhaaa! ... "、' 'selectedIndexPath'"、 "No、' NSOutlineViewSelectedPathIndexesPathBindingOption'!それは大きな選択肢ですハ! –

関連する問題