CALayer,NSTextView和缩放

时间:2012-10-29 10:07:06

标签: cocoa calayer nstextview nsscrollview

在我的应用程序中,我想在支持层的NSTextView中提供文本缩放,例如Apple的TextEdit。我使用它的模拟ScalingScrollView。另外,我需要在self.window.contentView上创建一些CALayer叠加层。一切正常,直到我[self.window.contentView setWantsLayer:YES]

[setWantsLayer:YES]之前

enter image description here

[setWantsLayer:YES]之后

enter image description here

我对如何解决这个问题没有任何想法。

1 个答案:

答案 0 :(得分:6)

我一直在寻找类似问题的解决方案。最后,我发现图层支持的视图必须位于整数像素上,并且不得位于子像素上。

E.g。如果您动态计算图层支持视图的框架

 NSMakeRect((self.frame.size.width - 350)/2, (self.frame.size.height - 150)/2, 350, 150)

您可能会遇到非整数值,因此您应该执行类似

的操作
 NSMakeRect(floor((self.frame.size.width - 350)/2), floor((self.frame.size.height - 150)/2), 350, 150)