Ответ 1
NSOutlineView
наследует от NSTableView
, поэтому вы получаете хорошие методы, такие как selectedRow
:
id selectedItem = [outlineView itemAtRow:[outlineView selectedRow]];
Как получить выбранный элемент NSOutlineView с использованием моего собственного источника данных. Я вижу, что я могу выбрать selectRow, но он возвращает идентификатор строки относительно состояния контура. Единственный способ сделать это - отследить расширенное сложенное состояние элементов, но это кажется смешным.
Я надеялся на что-то вроде:
array = [outlineViewOutlet selectedItems];
Я посмотрел на другие подобные вопросы, они, похоже, не отвечают на вопрос.
NSOutlineView
наследует от NSTableView
, поэтому вы получаете хорошие методы, такие как selectedRow
:
id selectedItem = [outlineView itemAtRow:[outlineView selectedRow]];
@Dave De Long: отличный ответ, вот перевод на Swift 3.0
@objc private func onItemClicked() {
if let item = outlineView.item(atRow: outlineView.clickedRow) as? FileSystemItem {
print("selected item url: \(item.fileURL)")
}
}
Показан случай, когда элемент из класса FileSystemItem имеет свойство fileURL.