我是一个可可和Objective-c新手。
我正在尝试构建一个mac应用程序,当我尝试创建一个继承自NSViewController的新控制器时,它会自动在.m文件中给出- (void)viewDidLoad
(但不在.h中)。问题是编译器总是大声说'#34;没有可见的@interface为' NSViewContoller'声明选择器' viewDidLoad'。
这怎么可能?请帮助我了解这里发生了什么以及如何解决它。 谢谢。
答案 0 :(得分:5)
如果您定位OSX Yosemite及以上,则仅在NSViewController中支持ViewDidLoad!如果您针对的是应用程序定位在Yosemite下方,请使用-awakeFromNib
或-loadView
方法删除它。
正如您在Apple's NSViewController Reference 中看到的那样 它是
Available in OS X v10.10 and later.
答案 1 :(得分:-2)
来自apple的文档,方法NSViewDidLoad
:
“对于源自nib文件的视图控制器,此方法是 在设置view属性后立即调用。对于一个观点 以编程方式创建控制器,立即调用此方法 在loadView方法完成之后。“
您需要在.h中创建一个方法,以便在您的应用中进行查看。