Joh*_*mph 8 macos initialization nsviewcontroller ios awakefromnib
我有一个NSViewController的子类,它从一个nib加载它的视图(使用initWithNibName:bundle:它是该nib的文件所有者).
我需要在加载nib之后进行一些初始化,并且我希望我的代码最兼容:
所以我的问题是:
Run Code Online (Sandbox Code Playgroud)- (void)initAfterNibLoaded { ... } - (void)viewDidLoad { // Code for ios [self initAfterNibLoaded]; } - (void)awakeFromNib { // Code for osx // Not sure if necessary [super awakeFromNib]; [self initAfterNibLoaded]; }
如果答案1为否,这是一个很好的解决方案吗?:
- (void)viewDidLoad {
// Initialize after nib loaded
}
#ifndef TARGET_OS_IPHONE
- (void)loadView {
// Call parent method
[super loadView];
// Simulate viewDidLoad method
[self viewDidLoad];
}
#endif
Run Code Online (Sandbox Code Playgroud)
谢谢
这是我发现的:
是的,awakeFromNib: 也被称为 Lion 中笔尖的文件所有者(通常对于新的 Mountain Lion 来说也是如此)。
NSObject从 OSX 10.6 开始,添加了一个类别awakeFromNib,因此可以安全地[super awakeFromNib]从任何子类调用。对于10.6之前的OSX,我们可以使用 instancesRespondToSelector:来知道父类是否实现了awakeFromNib,NSView或者NSObject子类一定不能调用[super awakeFromNib]。
| 归档时间: |
|
| 查看次数: |
2740 次 |
| 最近记录: |