Вы хотите использовать clickedRow
.Обратите внимание, что это становится немного сложнее, если вы поддерживаете множественный выбор, потому что выбор выбирается с помощью контекстного меню, если строка, по которой щелкнули, находится внутри него, тогда как, если вы щелкаете в другом месте, строка (одиночная), по которой щелкают, является целью, а выбор -игнорируется.
Вот пример кода, который я написал для обработки этого:
- (NSArray *)selectedURLs;
{
NSInteger clickedRow = [outlineView clickedRow];
NSArray *selectedObjects;
if (clickedRow == -1 || [[outlineView selectedRowIndexes] containsIndex:clickedRow])
selectedObjects = [treeController selectedObjects];
else
selectedObjects = [NSArray arrayWithObject:[[outlineView itemAtRow:clickedRow] representedObject]];
return [selectedObjects valueForKey:SSTreeNodeAttributes.fileReferenceURL];
}