swift - 如何获取已编辑的 NSOutlineView 文本字段单元格的“项目”或行索引?
问题描述
我正在使用带有文本字段/文本字段单元格的 NSOutlineView,如下图所示:
发送动作函数的代码:
@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
问题:
“sender”对象是一个 NSTextField 实例。我需要检索我的函数返回的“项目” 。func outlineView(_ outlineView: NSOutlineView, child index: Int, ofItem item: Any?) -> Any
我要么需要直接获取“项目”,要么需要行索引(我可以从我的地图词典中检索“项目”)
由于“发件人”是一个 NSTextField,我怎样才能找出刚刚编辑的行(或“项目”)是什么?
谢谢!
解决方案
获取行row(for view
和项目item(atRow
@IBAction func handleTextFieldDidEndEditing(_ sender: NSTextField) {
let row = outlineView.row(for: sender)
let item = outlineView.item(atRow: row)
outlineView
是NSOutlineView
实例
推荐阅读
- vscode-extensions - 在 VS Code 中,如何为不受支持的语言创建自定义“转到定义”功能?
- c - Else 语句总是运行
- python - ValueError:数据基数不明确:x 大小:3 y 大小:13 确保所有数组包含相同数量的样本
- ruby-on-rails - 试图了解关系表的迁移顺序
- amazon-web-services - 我如何架构师轮询以前为我提供了“已完成状态”的长时间运行的异步操作 ID 的外部 API?
- python - Python_ 如何更改我的结果行?
- reactjs - react redux-tool-kit fetchBase 查询拦截器中的重定向
- node.js - 解释 Neo4j 返回的记录
- ajax - 如何将 curl 转换为 axaj 请求?
- angular - 我在哪里可以在 grails 服务器角度客户端上添加代码