1

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

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

应用程序在后台时的图形错误

这是视图的 IB 结构: IB结构

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

有什么线索可以解决这个问题吗?提前致谢 !

4

2 回答 2

1

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

Apple UI 指南(此处)声明如下:

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

由于 TabView,我显然反对这条具有技术副作用的规则(导致了这篇文章:-))。

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

于 2017-07-05T07:07:49.343 回答
0

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

drawRect:当一个视图实现但没有完全填充传入的矩形(或从返回的所有矩形)时,我已经看到了这样的问题getRectsBeingDrawn:count:

于 2017-07-05T04:04:55.330 回答