在用户按下调用方法处理该selectedRow的按钮后,如何选择之前选择的NSTableView保持选择?
它在之前的程序中工作如下:
选择它会给它提供OSX选择颜色,单击保存按钮会使textField成为FirstResponder(),这会使行自动变为灰色并且不会更改selectedRow属性。这不是我的代码所做的,所以我很高兴它只是有效。
现在在一个类似的程序中,我想要实现这一点,但是在单击一个按钮(调用一个方法使textField成为FirstFirstResponder())后,视觉选择就消失了,而且tableView属性selectedRow又回到了-1(没有行)选择)。
我尝试了很多想法,大多数在线答案都是客观的。这是我最近的代码(通过相同的按钮调用,并且几乎伪造了之前自动工作的代码):
NSTableViewAction方法和selectedRowCache变量:
var selectedRowCache = -1
@IBAction func alarmDataTableView(_ sender: NSTableView) {
selectedRowCache = alarmDataTableView.selectedRow
}
buttonAction:
@IBAction func editAlarmButton(_ sender: NSButton) {
let row = alarmDataTableView.rowView(atRow: self.selectedRowCache, makeIfNecessary: false)
row?.backgroundColor = .blue
}
selectedRowCache只是一个变量,只要用户选择一行就会保存selectedRow(我不想这样)。
否使用此代码时,行的背景颜色不起作用(除了在调用按钮方法后丢失其选择)。
NSTableView是基于视图的。
感谢您的帮助!