2

我已经搜索了很长一段时间,但根本找不到任何东西,我已经有了可以创建的窗口,但是现在当我尝试为它调用 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,我已经有按钮和窗口了?

4

2 回答 2

4

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

  1. 创建一个自动释放池。
  2. 向 NSApplication 类询问共享应用程序对象。如果之前没有人要求共享应用程序对象,这将创建一个。
  3. 创建一个 NSMenu 来保存主菜单。为每个标准菜单创建一个菜单项,然后为每个标准菜单创建一个菜单,并将每个菜单设置为菜单项的子菜单。对于每个菜单,创建应该放入其中的项目。不要忘记本地化标题并设置适当的等效键。将顶级菜单设置为应用程序的主菜单。
  4. 对于具有单个窗口的应用程序,此时创建窗口,创建并为其提供内容视图,在其中创建所需的任何视图并将它们添加到内容视图中,然后对窗口进行排序。
  5. 告诉应用程序运行。
  6. 排干游泳池。
  7. 成功退出。

这是最低限度的。像往常一样,设置委托是可选的。

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

于 2011-06-18T05:52:05.447 回答
3

只需从 Xcode 中可用的模板之一开始。然后NSApplication是自动设置的。

如果您想通过编写所有代码以艰难的方式完成工作,那么本系列博客文章“不使用 Nibs 工作”将为您提供帮助,从这里开始。但是除非您很好地掌握了 Cocoa 的内部工作原理,否则您不想这样做。

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

于 2011-06-17T15:43:17.050 回答