【问题标题】:CALayer, NSTextView and scalingCALayer、NSTextView 和缩放
【发布时间】:2012-10-29 10:07:06
【问题描述】:

在我的应用程序中,我想在支持图层的 NSTextView 中提供文本缩放,例如 Apple 的 TextEdit。我使用它的类似物ScalingScrollView。我还需要在self.window.contentView 上创建一些 CALayer 叠加层。在我创建[self.window.contentView setWantsLayer:YES]之前一切都很好。

[setWantsLayer:YES]之前

[setWantsLayer:YES]之后

我不知道如何解决这个问题。

【问题讨论】:

    标签: cocoa calayer nstextview nsscrollview


    【解决方案1】:

    我也一直在寻找类似问题的解决方案。最后,我发现 layer-backed 视图必须定位在整数像素上,而不能定位在子像素上。

    例如如果你动态计算 layer-backed view 的 frame

     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)
    

    【讨论】:

    • 上帝,你太棒了!不幸的是,这个问题已经失去了现实,但你的解决方案如此优雅。谢谢!
    猜你喜欢
    • 2017-05-20
    • 1970-01-01
    • 2018-02-05
    • 2011-03-30
    • 2011-12-08
    • 1970-01-01
    • 2015-02-11
    • 2023-03-05
    • 1970-01-01
    相关资源
    最近更新 更多