当app在后台时,图形bug NSVisualEffectView

时间:2017-01-22 14:27:36

标签: macos cocoa nsvisualeffectview

我的应用程序将NSTableView配置为SourceList。 在NSTableView下,表格中有两个NSButton两个添加/删除项目。 表格和按钮嵌入在NSVisualEffectView(.behindWindow模式)中。

结果非常好,我可以通过表格和按钮看到背景,,当应用程序处于后台时(我将焦点放在另一个应用程序上),tableview和按钮变黑了,视图没有重绘,如下图所示(用iPhone拍摄,因为截图没有显示错误!):

Graphical bug when app in background

以下是视图的IB结构: IB structure

容器视图(CustomView)是图层支持的。

任何导致解决这个问题的方法?提前谢谢!

2 个答案:

答案 0 :(得分:1)

问题是我试图让NSOutlineView半透明(后窗混合),但是在TabView下。

Apple UI指南(here)声明如下:

  

当窗口包含多个侧边栏时,以及在面板或首选项窗口中使用侧边栏时,请使用不透明背景。所有其他时间,使用半透明背景。

由于TabView,我明显反对这个有技术副作用的规则(这导致了这个帖子: - ))。

- >使NSOutlineView不透明(不作为SourceList)解决了这个问题。

答案 1 :(得分:0)

您的任何观点是否不透明并实施drawRect:

当视图实现drawRect:但未完全填充传入的rect(或从getRectsBeingDrawn:count:返回的所有rects)时,我看到过类似的问题。