当我将NSScrollView作为图层支持视图的子视图时(例如通过从IB中选择NSTextView或NSTableView),我在滚动视图的文档视图中看到了奇怪的绘图行为。
为了说明,我在窗口中创建了一个带有NSTextView的简单项目。我写的唯一代码是打开窗口内容视图的图层支持:
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
[[self.window contentView] setWantsLayer:YES];
}
这是我输入textview时的结果。红色下划线没有正确排列:
http://mowglii.com/random/screenshot.png
此外,当我调整textview的大小时,文本和下划线很多。当我使用tableview(在scrollview中)而不是textview时,我在调整大小时看到了相同的抖动。
知道发生了什么事吗?
答案 0 :(得分:4)
当嵌入在图层支持的视图中时,NSScrollView确实行为不端。
动画包含滚动视图的视图需要一些严肃的技巧。只有在需要设置动画后,才可以尝试启用图层背景。然后,您需要强制绘图,以便不以空图层结束。
通常情况下,你需要更深入地了解技巧。即:保持层关闭关闭。将视图绘制到图像中,在启用了图层背景的叠加视图中显示该图像。将该视图设置为最终状态的图像。然后删除叠加视图以显示下面的实际最终状态。