Hayır, selectItem:
yöntemi yok, ancak bir rowForItem:
yöntemi var. Bunu, Peter'ın yukarıdaki selectRowIndexes:byExtendingSelection:
'u kullanma tavsiyesiyle birleştirirseniz, ihtiyacınız olan tüm bilgilere sahip olmalısınız. Gerçekten tutarlılık aşkına setSelectedItem:
çağıran öneriyoruz bir öğe seçmek için bir yöntem var isteseydi
, sen hiçbir fikri olmadığını sahip 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];
}
üzerinde bir kategoride böyle bir şey yazabilirsiniz Bu kod aslında çalışır; Sadece kavramı açıklamak için attı.
Merhaba Peter, cevabınız için teşekkürler. SelectRowIndexes: byExtendingSelection yöntemini zaten biliyorum. Sorun, NSOutlineView NSIndexSet ile değil NSIndexPath ile çalışıyor olmasıdır. – cocoafan
NSOutlineView belgelerinde tek bir NSIndexPath örneği görmüyorum. Belki de kullanmadığınız NSTreeController'ı düşünüyorsunuz. Ayrıca, bir anahat görünümü * bir tablo görünümüdür; bu, tüm tablo görünümü işlevselliğinin anahat görünümünde gayet iyi çalışması gerektiği anlamına gelir. –
Evet görüyorum. Kötüye, veri kaynama bağlı olmayan yerleşik bir çözüm yoktur. Veri kaynağımda ekstra kod yazmalıyım, değil mi? – cocoafan