Swift 大屏幕上的表格单元格图标内容色调错误
我目前正在将我的应用程序迁移到Big Sur,但是我无法使Swift 大屏幕上的表格单元格图标内容色调错误,swift,macos,cocoa,appkit,macos-big-sur,Swift,Macos,Cocoa,Appkit,Macos Big Sur,我目前正在将我的应用程序迁移到Big Sur,但是我无法使NSTableCellViews正常运行。Big Sur现在在表格单元格图像视图中为模板图像使用系统色调,如您在Finder中看到的示例: 现在,在我的NSTableViews(类型源代码列表)中,这在很大程度上可以正常工作,但是在我选择表格单元格之前,某些单元格似乎不会应用色调。我尝试了一切,包括只使用一个新的NSOutlineView和NSTableCellViews,没有任何修改,但没有成功 以下是我的感受: 表格的第一个单元格
NSTableCellView
s正常运行。Big Sur现在在表格单元格图像视图中为模板图像使用系统色调,如您在Finder中看到的示例:
现在,在我的NSTableView
s(类型源代码列表)中,这在很大程度上可以正常工作,但是在我选择表格单元格之前,某些单元格似乎不会应用色调。我尝试了一切,包括只使用一个新的NSOutlineView
和NSTableCellView
s,没有任何修改,但没有成功
以下是我的感受:
表格的第一个单元格在第一个显示时始终显示为未打印。有人知道这是什么原因吗
PS:我怀疑NSImageView
有问题,因为当我在图像视图上手动设置色调颜色时,只有在我选择单元格至少一次后,色调才会开始出现:
cell.imageView?.contentTintColor = .red
据我所知,这是一个苹果SDK错误
实现以下内容并仅返回强调色似乎可以缓解此问题,但还不能完全解决此问题。单个图标被解开的情况仍然可能发生
extension MyController: NSOutlineViewDelegate {
@available(OSX 11.0, *)
func outlineView(_ outlineView: NSOutlineView,
tintConfigurationForItem item: Any) -> NSTintConfiguration? {
.init(preferredColor: .controlAccentColor)
}
}
然而,我认为这不是必须的
PS:即使使用此“修复”单元图标,有时也不会应用着色。部分修复
如果您使用的是Interface Builder:
NSTableCellView
imageView
和cellView
之间的连接imageView
,并使用属性检查器手动设置着色颜色。(您可以选择“强调色”,它仍将提供动态强调色色调。)tintConfigurationForItem
API
NSImageView
,然后自己设置值。这是否适用于您的用例是一个问题。)
对我来说,当我重新加载大纲视图时,图标会变为100%黑色,然后在选择行和取消选择行时,图标会变回正确的色调。完成一次后,问题不会再次出现,直到重新启动应用程序。不幸的是,我没有修复方法,但我可以确认,你不是唯一一个看到这种行为的人。你装了雷达了吗?期待着在绕红矮星轨道飞行时阅读固定补丁。