【发布时间】:2015-03-08 17:21:37
【问题描述】:
当 NSPopover 在 10.10 中运行时,我无法让 NSPopover 恢复到 10.9 的外观。我有一个弹出框,它附加到用户拖动的 NSView 上。弹出框必须透明,以便用户仍然可以看到下方其他 UI 元素的位置。
在 10.9 下一切正常,但现在在 10.10 下使用 Apple 的新花哨模糊,我似乎无法在 10.10 上恢复相同的外观(除非像我一样,用户在系统偏好设置 > 辅助功能中启用了“降低透明度” . 我无法对最终用户强制执行的偏好更改!)。
试过了:
self.draggingPopover.appearance = NSPopoverAppearanceHUD;
self.popoverView.superview.appearance = [NSAppearance appearanceNamed:NSAppearanceNameAqua];
self.popoverView.appearance = [NSAppearance appearanceNamed:NSAppearanceNameAqua];
这些都不会影响弹出框在屏幕上的外观。
drawRect 在我的视图子类中用我选择的颜色填充背景,但忽略 alpha 值并且弹出框是不透明的。
同样,我可以使用self.popoverView.layer.backgroundColor = ...,但那里的 alpha 值也被忽略了!
【问题讨论】:
-
似乎从 10.10 开始弹出内容视图的超级视图 (NSPopoverFrame) 以完全不透明的方式绘制,因此无论您在内容视图中做什么,都不支持透明度。
-
你有没有让这个工作?
标签: cocoa osx-yosemite nspopover