我有一个简单的应用程序示例,我在这里拍了一下,我得到的就是我所追求的。
问题是当视图加载时,在NSViewController的viewDidLoad中,我将tableView的选定索引设置为0,即第一个项目(有效)。
我注意到的是,当发生这种情况时,所选行会显示为灰色(即好像它不是活动的窗口/视图)...当我点击时,它似乎只有正常蓝色的高光在选定的行上。
我可以确认选择了行并且一切正常。
有什么想法吗?
要确认,我用来选择行的代码是:
override func viewDidAppear() {
self.tableView.selectRowIndexes(NSIndexSet(index: 0), byExtendingSelection: false)
}
以下是实际视图本身的情况:
上图:较暗的灰线是“选择栏”。只要视图变为活动状态,就会发生这种情况。
上图:一旦我点击那一行(曾经是深灰色的那一行),我就得到了他想要的高光照......即海军蓝。
答案 0 :(得分:1)
我已经设法找出发生了什么。 (我认为)它似乎有效。
我必须:
NSTableRowView
NSTableViewRowViewKey
(这是非常具体的,字面上是关键,如果没有设置,它将无法被视为表行视图。在子类中,我必须覆盖emphasised: Bool
以始终返回yes,例如:
override var emphasized: Bool{
get{
return true
}
set{
//You need to have the "set" there as it's a mutable prop
//It doesn't have to do untying though
}
}
瞧..
我的案例中的问题是 4 。