【问题标题】:make the new window default in cocoa app在可可应用程序中将新窗口设为默认
【发布时间】:2014-10-29 13:16:57
【问题描述】:

我有 2 个关于 cocoa 应用的问题(初学者):

  1. 我创建了新的可可应用程序。我创建了新类 MSDMasterWindowController 并选中了要创建的新 .xib 文件复选框。我想让新窗口成为默认窗口。我怎样才能做到这一点?

  2. 尝试这样做的原因是我找不到为默认窗口编写代码的位置(没有 .h 和 .m 文件)我可以创建 NSWindowController 的新类子类,然后以某种方式将该类与默认的 .xib 连接起来?这个窗口的作用是什么?

任何关于上述问题的澄清或指向解释该主题的一些教程的链接将不胜感激。我已经下载了Window编程指南,我正在看。

问候,约翰。

【问题讨论】:

  • 它是基于文档的应用程序吗?如果您没有从一个空项目开始,而是使用了其中一个模板,那么您新创建的应用程序应该已经有一个窗口。
  • 不,它不是基于文档的应用程序。新创建的应用确实有窗口,第二个问题解释了我要这样做的原因
  • 推荐文章:mikeash.com/pyblog/…

标签: objective-c macos cocoa


【解决方案1】:

每个 XIB 都有一个文件所有者,您可以将其连接到自定义类。如果您创建一个NSWindowController 子类,您可以将其用作单独的XIB 的所有者。

单协调器应用程序中的默认窗口可以放在 MainMenu.xib 中,该文件的所有者为 NSApplication ,尽管为主窗口设置一个单独的窗口控制器可能是个好习惯,因此您可以控制它何时显示和隐藏,而不是NSApp 默认行为。

类似的答案here

您可以让applicationDidFinishLaunching 和其他各种应用程序委托方法显示窗口。或主菜单中的菜单项。方法各不相同,但也许您希望在您的应用委托实例中有一个属性,它是您的 NSWindowController 子类的一个实例。

self.wincon = [[MYCustomWindowController alloc] initWithWindowNibName:@"MainWindow"];
[self.wincon showWindow:self];

... "MainWindow.xib" 是 xib 文件,MYCustomWindowController 作为文件的所有者。

【讨论】:

  • 我应该输入什么而不是 .wincon?
  • 与您添加到应用委托类的@property 名称匹配的任何内容。
  • 该属性应该是什么类型?有什么例子吗?
  • "你的 nswindowcontroller 子类"
  • 我现在收到一个错误“没有 MSDMasterWindowController 的可见界面”声明者选择器 makeKeyAndOrderFront...呃...任何想法?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-14
  • 1970-01-01
相关资源
最近更新 更多