Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c NSPopover中的NSOutlineView在OSX 10.10 Yosemite中不可读_Objective C_Macos_Cocoa_Nsoutlineview_Nspopover - Fatal编程技术网

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”),则组文本会在鼠标上方上下跳跃<代码>常规
简直是疯了:-(