cocoa – 如何从代码中加载nib文件?

cocoa – 如何从代码中加载nib文件?,第1张

概述我在界面生成器中创建了一个自定义视图,其中包含几个按钮.我在代码中创建了一个类作为“文件所有者”,将按钮连接到 *** 作方法. 那我该怎么用这个课呢? 我不能这样做…… StartScreen *ss = [[StartScreen alloc] initWithFrame: ...];[self.window.contentView addSubView: ss];... 因为这只会产生一个空视图 我在界面生成器中创建了一个自定义视图,其中包含几个按钮.我在代码中创建了一个类作为“文件所有者”,将按钮连接到 *** 作方法.

那我该怎么用这个课呢?

我不能这样做……

StartScreen *ss = [[StartScreen alloc] initWithFrame: ...];[self.window.contentVIEw addSubVIEw: ss];...

因为这只会产生一个空视图. (当然:StartScreen类还不知道有关nib文件的任何信息.)

我想做的是:

StartScreen *ss = LoadCustomVIEwFromNib(@"StartScreen");[self.window.contentVIEw addSubVIEw: ss];

或者我可能要说些什么

[self iWannaBeANibWithname: @"StartScreen"];

在StartScreen的构造函数中?

请帮忙……
(顺便说一句,我正在为Mac OS X 10.6开发)

解决方法 一种选择是使StartScreen成为NSVIEwController的子类,可能将其名称更改为StartScreenController.如果你的nib文件中有IBActions和/或你想将视图控制代码放在它自己的类中,这是一个可能更模块化的解决方案.

>将StartScreenController声明为NSVIEwController的子类
>如果需要,在StartScreenController中声明IBOutlets
>将nib文件的所有者类设置为StartScreenController
>如果需要,将文件的所有者视图插座连接到视图对象和其他插座

然后:

StartScreenController *ss = [[StartScreenController alloc] initWithNibname:@"nibname" bundle:nil];    [self.window.contentVIEw addSubVIEw:ss.vIEw];…

如果您不使用垃圾收集,请不要忘记在不再需要时释放ss.

总结

以上是内存溢出为你收集整理的cocoa – 如何从代码中加载nib文件?全部内容,希望文章能够帮你解决cocoa – 如何从代码中加载nib文件?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1003626.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存