cocoa - 在 cocoa 中创建 NSApplication?

标签 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,我已经有按钮和窗口了?

最佳答案

要完全在代码中完成此操作,根本不需要 Nib ,您首先应该从 Info.plist 文件中删除 NSMainMenuNib 条目。然后,在main中:

  1. 创建自动释放池。
  2. 向 NSApplication 类请求共享应用程序对象。如果之前没有任何内容请求过共享应用程序对象,则这将创建一个。
  3. 创建一个 NSMenu 来保存主菜单。为每个标准菜单创建一个菜单项,然后为每个标准菜单创建一个菜单,并将每个菜单设置为该菜单项的子菜单。对于每个菜单,创建应包含在其中的项目。不要忘记本地化标题并设置适当的等效键。将顶层菜单设置为应用程序的主菜单。
  4. 对于具有单个窗口的应用程序,此时创建窗口,创建并为其提供内容 View ,创建您想要的任何 View 并将它们添加到内容 View 中,然后对窗口进行排序。
  5. 让应用程序运行。
  6. 排空水池。
  7. 成功退出。

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

当您以通常的方式创建应用程序时,所有这些(除了您在 IB 中执行的创建和添加 subview 之外)都已为您完成。

关于cocoa - 在 cocoa 中创建 NSApplication?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6388219/

相关文章:

cocoa - 如何在 Objective-C 中获取加载了默认配置文件的 bash 实例

cocoa - 激活时,菜单栏应用程序中的“关于”面板不是最前面的

objective-c - 监控沙盒应用程序中的文件夹

macos - 我点击 "show tab bar"时没有加号按钮

cocoa - 对 NSDate 的 NSArray 进行排序

macos - 如何防止 Storyboard 打开窗口

objective-c - 如何在运行时检查 Mac OS X 版本

objective-c - NSWindow 隐藏事件窗口并专注于其他窗口

objective-c - 如何以编程方式激活 cocoa 应用程序

objective-c - 访问使用 xcode/cocoa 创建的应用程序包中的资源