swift - 使 NSTableView 行保持选中 Swift
问题描述
在用户按下调用方法以使用该 selectedRow 的按钮后,我将如何使 NSTableView 的先前 selectedRow 保持选中状态?
它在以前的程序中工作,如下所示:
选择它会为其提供 OSX 选择颜色,单击保存按钮会使 textField becomeFirstResponder() 使行自动变为灰色并且不会更改 selectedRow 属性。这不是由我的代码完成的,所以我很高兴它可以正常工作。
现在在一个类似的程序中,我想完全实现这一点,但是在单击一个按钮(调用使 textField becomeFirstResponder() 的方法)后,视觉选择消失了,tableView 属性 selectedRow 也返回到-1(未选择行)。
我尝试了很多想法,网上的大多数答案都是objective-C。这是我最近的代码(被同一个按钮调用并且几乎伪造了以前自动工作的代码):
NSTableViewAction 方法和 selectedRowCache 变量:
var selectedRowCache = -1
@IBAction func alarmDataTableView(_ sender: NSTableView) {
selectedRowCache = alarmDataTableView.selectedRow
}
按钮动作:
@IBAction func editAlarmButton(_ sender: NSButton) {
let row = alarmDataTableView.rowView(atRow: self.selectedRowCache, makeIfNecessary: false)
row?.backgroundColor = .blue
}
selectedRowCache 只是一个变量,每当用户选择一行时它都会保存 selectedRow (我不想要这个)。
不使用此代码,行的背景颜色不会做任何事情(除了在调用按钮方法后丢失其选择)。
NSTableView 是基于视图的。
感谢您的任何帮助!
解决方案
推荐阅读
- winapi - 如何获得“免费”子窗口的客户区矩形
- java - 如何在 java Android 中调用后台线程上的多个方法。我需要在不同的时间给他们打电话
- text - 如何断言表单字段包含一些文本,而不管赛普拉斯中的文本是什么?
- javascript - 如何正确从服务器获取图像文件?
- vbscript - 使用 VBScript 从 ISO-8601 格式的日期中减去一小时
- php - WP 功能更改 CPT 存档标题
- postgresql - 如何将间隔参数传递给准备好的语句?
- java - 重复类:javax.activation ... 使用 Gradle 构建项目时
- sql - 为每个匹配格式的键插入多个新行
- python - pandas Int64 数据类型在描述或分位数函数中失败