在可可中创建NSApplication?

时间:2011-06-17 15:38:18

标签: cocoa nsapplication

我已经搜索了很长一段时间但是根本找不到任何东西,我已经有了可以创建的窗口,但是现在当我尝试为它调用makeKeyAndOrderFront时,没有应用程序来调用它,所以我想知道是否有人可以快速举例说明如何创建应用程序?我发现它是NSApplication,我需要setDelegate等,但不确定究竟需要什么。例如,要创建一个窗口,我需要这个代码:

NSWindow *window;
window = [[NSWindow alloc] initWithContentRect: NSMakeRect(10, 100, 150, 200)
    styleMask:( NSResizableWindowMask | NSClosableWindowMask | NSTitledWindowMask)
    backing: NSBackingStoreBuffered
    defer: NO];
[window setTitle: @"Test window"];

所以任何人都可以给我相关代码,但对于NSApplication,我已经有按钮和窗口了吗?

2 个答案:

答案 0 :(得分:4)

要完全在代码中执行此操作,根本没有nib,首先应从Info.plist文件中删除NSMainMenuNib条目。然后,在main

  1. 创建自动释放池。
  2. 向NSApplication类询问共享应用程序对象。如果之前没有任何要求共享的应用程序对象,则会创建一个。
  3. 创建一个NSMenu来保存主菜单。为每个标准菜单创建一个菜单项,然后为每个标准菜单创建一个菜单,并将每个菜单设置为菜单项的子菜单。对于每个菜单,创建应该包含的项目。不要忘记本地化标题并设置适当的密钥等价物。将顶级菜单设置为应用程序的主菜单。
  4. 对于具有单个窗口的应用程序,此时创建窗口,创建并为其提供内容视图,在其中创建所需的任何视图并将其添加到内容视图中,然后对窗口进行排序。
  5. 告诉应用程序运行。
  6. 排水池。
  7. 退出成功。
  8. 这是最低限度的。像往常一样,设置委托是可选的。

    当您以通常的方式创建应用程序时,所有这些 - 除了创建和添加您在IB中执行的子视图 - 都是为您完成的。

答案 1 :(得分:3)

从Xcode中提供的模板之一开始。然后会自动设置NSApplication

如果您想通过编写所有内容进行艰苦的处理,这一系列的博客文章“无需工作”将为您提供帮助,starts here。但除非你很好地掌握了Cocoa的内部运作,否则你不想这样做。

所以,只要坚持人们通常做的事情,并从Xcode中提供的模板开始。