cocoa pyobjc

cocoa - ¿Cómo obtener el elemento seleccionado de NSOutlineView sin utilizar NSTreeController?



pyobjc (2)

¿Cómo obtengo el elemento seleccionado de un NSOutlineView con el uso de mi propia fuente de datos? Veo que puedo obtener selectedRow pero devuelve una ID de fila relativa al estado del esquema. La única forma de hacerlo es rastrear el estado expandido colapsado de los elementos, pero eso parece ridículo.

Esperaba algo como:

array = [outlineViewOutlet selectedItems];

Miré las otras preguntas similares, no parecen responder la pregunta.


@Dave De Long: excelente respuesta, aquí está la traducción a Swift 3.0

@objc private func onItemClicked() { if let item = outlineView.item(atRow: outlineView.clickedRow) as? FileSystemItem { print("selected item url: /(item.fileURL)") } }

Se muestra un caso en el que el elemento pertenece a la clase FileSystemItem con una propiedad fileURL.


NSOutlineView hereda de NSTableView , por lo que obtiene buenos métodos, como selectedRow :

id selectedItem = [outlineView itemAtRow:[outlineView selectedRow]];