Objective c NSPopover中的NSOutlineView在OSX 10.10 Yosemite中不可读
我有一个Objective c NSPopover中的NSOutlineView在OSX 10.10 Yosemite中不可读,objective-c,macos,cocoa,nsoutlineview,nspopover,Objective C,Macos,Cocoa,Nsoutlineview,Nspopover,我有一个nspover,其中包含一个NSOutlineView(源代码列表),显示在通常较暗的背景上(但并不总是较暗)。NSOutlineView有一个透明的背景,可以很好地与nspover视图混合。这在OS X 10.9中看起来很棒,但在10.10中,系统会根据背景更改NSOutlineView中的文本颜色。结果是,文本在某些情况下完全变为灰色,无法阅读: 如果我将popover更改为HUD样式,则更具可读性: 但是,在这种情况下,背景较浅(顶部)会出现问题 是否有任何方法可以控制NSOu
nspover
,其中包含一个NSOutlineView
(源代码列表),显示在通常较暗的背景上(但并不总是较暗)。NSOutlineView
有一个透明的背景,可以很好地与nspover
视图混合。这在OS X 10.9中看起来很棒,但在10.10中,系统会根据背景更改NSOutlineView
中的文本颜色。结果是,文本在某些情况下完全变为灰色,无法阅读:
如果我将popover更改为HUD样式,则更具可读性:
但是,在这种情况下,背景较浅(顶部)会出现问题
是否有任何方法可以控制NSOutlineView
中的文本颜色,以便无论背景如何,颜色都保持不变?我曾尝试将文本单元格的颜色设置为黑色,而不是系统颜色,但没有帮助
另外,我是否可以控制/删除nspover
的透明度?我已经读到nspover
使用了NSVisualEffectView
,它有一些外观控件,但我不知道如何从nspover访问它
出于美观原因,我不想将NSOutlineView
置于坚实的背景视图下。在这种情况下,popover背景和箭头之间的颜色将非常不匹配
编辑:
我可以使用以下代码删除透明度:
NSView *popoverView = popover.contentViewController.view.superview;
popoverView.appearance = [NSAppearance appearanceNamed:NSAppearanceNameAqua];
它可以工作,但感觉像一个丑陋的黑客。我欢迎更好的建议
编辑2:
这就是水族风格的外观。没有透明和黑色文本
将模式设置为不同于源代码列表的模式,您应该获得10.10之前的样式,即没有半透明。外观设置为Aqua时是什么样子?@boyfarrell查看我的编辑。我使用了
无<代码>源代码列表
可以,但如果基线下没有字符(如“g”),则组文本会在鼠标上方上下跳跃<代码>常规
简直是疯了:-(