Macos 如何使NSSystemColorsIDChange的NSTableView自身更新?
当我在系统首选项中更改系统高亮显示颜色时,所有应用程序中的大多数Cocoa控件(如NSTextField)都会自动更新自己的显示以使用新颜色 但是,NSTableView没有。它似乎被应用程序启动时使用的高亮颜色卡住了 有办法解决这个问题吗?我可以在NSSystemColorsDidChange的NSWindow中添加一个观察者,当我更改系统颜色时会调用它,但我应该如何处理它?显而易见的事情,比如:Macos 如何使NSSystemColorsIDChange的NSTableView自身更新?,macos,cocoa,nstableview,nsnotificationcenter,Macos,Cocoa,Nstableview,Nsnotificationcenter,当我在系统首选项中更改系统高亮显示颜色时,所有应用程序中的大多数Cocoa控件(如NSTextField)都会自动更新自己的显示以使用新颜色 但是,NSTableView没有。它似乎被应用程序启动时使用的高亮颜色卡住了 有办法解决这个问题吗?我可以在NSSystemColorsDidChange的NSWindow中添加一个观察者,当我更改系统颜色时会调用它,但我应该如何处理它?显而易见的事情,比如: contentView?.needsDisplay = true 或: 似乎什么也不做。我尝试
contentView?.needsDisplay = true
或:
似乎什么也不做。我尝试了这个,我的表视图的选择颜色会随着系统颜色的变化而变化。Finder中表格视图的选择颜色并不总是改变。来回切换到另一个窗口可以修复颜色。
setSelectionHighlightStyle
确实重新加载数据
,选择行索引:通过扩展选择:
和设置需要显示:
。奇怪。切换窗口对我没有帮助,甚至不会导致控制器重新加载。我想知道我的手机是怎么回事,这让它表现得不一样。我可以确认Finder是相同的:它似乎根本没有得到新的颜色。那些标志似乎对我没有帮助。我已经在做一些会导致它重新加载数据并请求重新显示的事情(比如卸载/重新加载控制器/xib,并重新计算它显示的数据)。而发现者也正遭受着这种痛苦,所以(可能)这不仅仅是我在做的疯狂的事情。它似乎真的在某个地方缓存了NSTableView中的突出显示颜色。(我在它上面设置了一个雷达。)我尝试了这个,我的表视图的选择颜色会随着系统颜色的变化而变化。Finder中表格视图的选择颜色并不总是改变。来回切换到另一个窗口可以修复颜色。setSelectionHighlightStyle
确实重新加载数据
,选择行索引:通过扩展选择:
和设置需要显示:
。奇怪。切换窗口对我没有帮助,甚至不会导致控制器重新加载。我想知道我的手机是怎么回事,这让它表现得不一样。我可以确认Finder是相同的:它似乎根本没有得到新的颜色。那些标志似乎对我没有帮助。我已经在做一些会导致它重新加载数据并请求重新显示的事情(比如卸载/重新加载控制器/xib,并重新计算它显示的数据)。而发现者也正遭受着这种痛苦,所以(可能)这不仅仅是我在做的疯狂的事情。它似乎真的在某个地方缓存了NSTableView中的高光颜色。(我已经在它上面设置了雷达。)
viewsNeedDisplay = true