使NSTableView行保持选中Swift

时间:2018-04-25 13:49:36

标签: swift xcode tableview swift4 nstableview

在用户按下调用方法处理该selectedRow的按钮后,如何选择之前选择的NSTableView保持选择?

它在之前的程序中工作如下:

selectedRow stays selected

选择它会给它提供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是基于视图的。

感谢您的帮助!

0 个答案:

没有答案