首先,我有主菜单(开始游戏,高分,退出).然后我需要一个窗口为每个屏幕(游戏屏幕,高分屏幕).
我对此感到困惑的是如何设计它.我查找了NSVIEwController,认为它管理视图,但事实并非如此.它只通过加载它来管理一个视图.我不明白为什么我需要使用NSVIEwController.难道我不能只有一个包含多个NSVIEw子类的窗口类并加载它们吗?我不确定我是否了解VIEwController的用途.
我的Window类真的需要子类化NSWindowController吗?我试图按照Apple的VIEwController示例的例子,它有一个窗口控制器类,它是NSWindowController的子类.我没有看到子类化的目的是什么.所有NSWindowController似乎都添加了 – initWithPath:(Nsstring *)newPath但是当我可以编辑pList文件以在启动时打开窗口时,我无法看到它的用法. Apple的例子还有一个NSVIEw变量和一个NSVIEwController变量.您是否只需要一个变量来存储当前视图?
先谢谢你们,我真的很困惑这是怎么回事.
解决方法 听起来你正试图在窗口内换出内容视图?如果是这种情况,您可以使用 – [NSVIEw replaceSubvIEw:with:] – [NSWindow contentVIEw]作为接收者.假设您有一个名为TitleVIEw的标题页和一个名为menuVIEw的菜单页,您想要将它们交换进应用程序的主窗口.如果标题页可见并且用户点击“主菜单”按钮或链接,您可以在按钮的委托方法中输入类似的内容:
[[[NSApp mainWindow] contentVIEw] replaceSubvIEw:TitleVIEw with:menuVIEw];
有两点需要注意:
>此视图中将显示旧视图(本例中为TitleVIEw).如果您希望它仍然可用,则必须在更换之前保留它.
>如果您的页面具有不同的尺寸,则父视图不会调整大小.更改窗口的帧大小,因此contentVIEw很容易,但您可以在混合中添加一些Core Animation以赋予它一些风格.
我希望这有帮助!
总结以上是内存溢出为你收集整理的objective-c – 如何在Cocoa应用程序中切换视图?全部内容,希望文章能够帮你解决objective-c – 如何在Cocoa应用程序中切换视图?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)