gpt4 book ai didi

macos - Cocoa:未调用自定义 View 代理中的 initWithFrame

转载 作者:行者123 更新时间:2023-12-03 16:26:46 26 4
gpt4 key购买 nike

根据苹果文档Creating a Custom View如果您在 Interface Builder 中使用自定义 View 代理,则应调用此方法。

如果您尚未为自定义 View 创建 Interface Builder 调色板,则可以使用两种技术在 Interface Builder 中创建子类的实例。第一个是使用 Interface Builder 容器选项板中的 Custom View 代理项。此 View 是自定义 View 的替代 View ,允许您相对于其他 View 定位 View 并调整 View 的大小。然后,您可以使用检查器指定 View 表示的 NSView 子类。当应用程序加载 nib 文件时,自定义 View 代理会创建指定 View 子类的新实例,并使用 initWithFrame: 方法对其进行初始化,并根据需要传递任何自动调整大小标志。然后 View 实例接收 awakeFromNib 消息。

不幸的是,在我的例子中它没有被调用。有人必须处理这个问题吗?

最佳答案

部署到最新版本的操作系统时,最新版本的 Xcode 出现了新行为。在 NIB 的文件检查器中,查看是否选中了运行时行为 - 实例化:首选编码器。如果是,如果您需要/想要为自定义 View 调用 -initWithFrame: ,请取消选中它。或者,保留其选中状态并利用 NIB 加载机制现在将调用 -initWithCoder: 的事实。当然,您应该通过编码和解码任何对序列化有意义的自定义内部状态来确保您的类属性支持 NSCoding

关于macos - Cocoa:未调用自定义 View 代理中的 initWithFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30609294/

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