Я использую NSOutlineView с текстовым полем / ячейкой текстового поля, как показано на изображениях ниже:
![enter image description here](https://i.stack.imgur.com/pjPqY.png)
![enter image description here](https://i.stack.imgur.com/KnYiM.png)
Код отправленной функции действия:
@IBAction func handleTextFieldDidEndEditing(_ sender: Any) {
print("LeftNavBarOutlineView selectedRow: \(self.selectedRow)")
print("LeftNavBarOutlineView editedRow: \(self.editedRow)")
print("LeftNavBarOutlineView selectedRowIndexes.count: \(self.selectedRowIndexes.count)")
let taskName = (sender as! NSTextField).stringValue
print("LeftNavBarOutlineView " + taskName)
}
Результат распечатки:
LeftNavBarOutlineView selectedRow: -1
LeftNavBarOutlineView editedRow: -1
LeftNavBarOutlineView selectedRowIndexes.count: 0
LeftNavBarOutlineView
Проблема:
"отправитель" объект является экземпляром NSTextField.Мне нужно получить «элемент» , возвращаемый моей функцией func outlineView(_ outlineView: NSOutlineView, child index: Int, ofItem item: Any?) -> Any
.
Мне нужно либо получить «элемент» напрямую, либо индекс строки (который я могу получить"item" из моего словаря карты)
Так как "sender" является NSTextField, как я могу узнать, что это за строка (или "item"), которая только что была отредактирована?
Спасибо!