【发布时间】:2011-11-11 02:15:47
【问题描述】:
我需要设置一个从 Nib 加载的 NSView 的属性,该 Nib 使用其初始边界计算。 它的边界在内部仍然为空 - (void)awakeFromNib,那么我可以访问其边界的视图生命周期中的第一个点是什么?
【问题讨论】:
标签: objective-c nsview nib bounds
我需要设置一个从 Nib 加载的 NSView 的属性,该 Nib 使用其初始边界计算。 它的边界在内部仍然为空 - (void)awakeFromNib,那么我可以访问其边界的视图生命周期中的第一个点是什么?
【问题讨论】:
标签: objective-c nsview nib bounds
设置在-viewDidMoveToWindow:
【讨论】:
确实,Apple documentation 明确表示:
重要提示:由于无法保证从归档中实例化对象的顺序,因此您的初始化方法不应向层次结构中的其他对象发送消息。可以从 awakeFromNib 中安全地向其他对象发送消息——此时可以确保所有对象都未归档并已初始化(当然,不一定要唤醒)。
在 iOS 上,您可以使用 viewDidLoad 方法,但在 Mac 上似乎不一定可用。
我相信你会找到你的答案in the stackoverflow post(这是一个 Mac 开发者解决方案,不是 iOS,但它似乎是你正在寻找的)。
【讨论】: