gpt4 book ai didi

macos - NSView 边界中托管的 CALayer 发生变化

转载 作者:行者123 更新时间:2023-12-03 17:11:54 30 4
gpt4 key购买 nike

我有一个托管在 NSView 中的自定义 CALayer,包含在 NSScrollView 中,在 CALayer 上设置属性将导致其边界发生更改。

问题是 NSView 真的想要拥有所包含的 CALayer 的边界,我可以通过在边界上添加 KVO 来使其工作,这样当层边界更改时,它就会更改 NSView 边界(这会将层边界更改为相同的值 - 幸运的是,如果该值实际上没有改变,KVO 不会递归)。

还有更好的办法吗?似乎通过布局系统会更好,但随后我只能指定我的首选框架(通过我的变换的边界) - 这变成了设置我的边界,但有一定的舍入误差。

CALayer 应如何请求边界更改?或者是我当前的黑客首选机制......

最佳答案

我不完全确定你在做什么,但我会让 CALayer 在其 NSView 上设置一个 NSSize ivar,这会更改 NSView 的自动布局的固有大小,然后在 View 上调用 setNeedsRelayout:YES。如果您要使用附加到 View 的图层,请不要试图让尾部摇狗。

关于macos - NSView 边界中托管的 CALayer 发生变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21612141/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com