いいえ、selectItem:
メソッドはありませんが、rowForItem:
メソッドがあります。上記のselectRowIndexes:byExtendingSelection:
の使用に関するPeterの助言と組み合わせて使用する場合は、必要なすべての情報が必要です。
あなたは本当に私が一貫性のためにsetSelectedItem:
を呼び出すことをお勧めアイテムを、選択するための方法を持っていると思った場合、あなたはNSOutlineView
- (void)setSelectedItem:(id)item {
NSInteger itemIndex = [self rowForItem:item];
if (itemIndex < 0) {
// You need to decide what happens if the item doesn't exist
return;
}
[self selectRowIndexes:[NSIndexSet indexSetWithIndex:itemIndex] byExtendingSelection:NO];
}
にカテゴリでこのような何かを書くことができ、私は見当がつかない場合このコードは実際に動作します。私はその概念を説明するためにそれを打ち消した。
こんにちはピーター、答えてくれてありがとう。私はすでにselectRowIndexes:byExtendingSelection:メソッドを知っています。問題は、NSOutlineViewがNSIndexPathではなくNSIndexPathで動作していることです。 – cocoafan
NSOutlineViewドキュメントにNSIndexPathのインスタンスが1つも表示されません。おそらくあなたはNSTreeControllerを使用していないと考えているでしょう。さらに、アウトラインビュー*はテーブルビューです。つまり、すべてのテーブルビュー機能はアウトラインビューで正常に機能するはずです。 –
はい、あります。悪いことに、私のデータソースに依存しない組み込みのソリューションはありません。私はデータソースに余分なコードを書く必要がありますか? – cocoafan