根据初始边界设置 NSView 默认属性值

发布于 2024-12-03 06:18:23 字数 108 浏览 1 评论 0原文

我需要设置从 Nib 加载的 NSView 的属性,该 Nib 使用其初始边界计算。 它的边界在 (void)awakeFromNib 内部仍然为空,那么视图生命周期中我可以访问其边界的第一个点是什么?

I need to set a property of an NSView loaded from a Nib calculated using its initial bounds.
Its bounds is still null inside - (void)awakeFromNib, so what is the first point in the view's lifecycle that I can access its bounds?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

独留℉清风醉 2024-12-10 06:18:23

-viewDidMoveToWindow:中设置

Set it in -viewDidMoveToWindow:

想挽留 2024-12-10 06:18:23

事实上, Apple 文档< /a> 明确表示:

重要:由于无法保证从存档中实例化对象的顺序,因此您的初始化方法不应向层次结构中的其他对象发送消息。可以从 awakeFromNib 中安全地发送到其他对象的消息,此时可以确保所有对象都已取消归档并初始化(当然,尽管不一定会被唤醒)。

在 iOS 上,您可以使用 viewDidLoad 方法,但似乎在 Mac 上不一定可用。

我相信您会在stackoverflow帖子中找到答案(这是Mac开发人员解决方案具体不是 iOS,但似乎这正是您正在寻找的)。

Indeed, Apple documentation clearly says:

Important: Because the order in which objects are instantiated from an archive is not guaranteed, your initialization methods should not send messages to other objects in the hierarchy. Messages to other objects can be sent safely from within awakeFromNib—by which time it’s assured that all the objects are unarchived and initialized (though not necessarily awakened, of course).

On iOS you would use the viewDidLoad method but it seems that is not necessarily avaible on Mac.

I believe you will find your answer in the stackoverflow post (this is a Mac developer solution specific not iOS but it seems it is what you are looking for).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文