objective-c - 无窗口 Cocoa 应用程序

标签 objective-c macos nswindow

我是 Objective-C 和 Cocoa 的初学者。

我想创建一个无窗口应用程序,它只在系统托盘中显示一个 NSStatusItem。托盘工作正常,但是有一个问题。

出于某种原因,我的应用程序自动为我创建了一个我不想要的窗口。

我认为这是我在 Xcode 中创建应用程序时创建的自动 Interface Builder 模板造成的,所以我从项目中删除了 .nib 文件。然而,窗口仍然被创建。

唯一包含对窗口的引用的行在标题中:

NSWindow *window;
@property (assign) IBOutlet NSWindow *window;

在实现文件中:

@synthesize window;

都是自动添加的,不是我写的

如何才能阻止应用程序创建窗口?我什至尝试从代码中删除所有对 window 的引用,包括 NSWindow *window,但窗口仍然被创建。

我现在的临时解决方法是在应用程序中调用 [window close];,但肯定有更好的方法吗?

最佳答案

我怀疑您的代码中没有创建窗口的内容。当您创建一个新的 Cocoa Xcode 应用程序时,Xcode 会为您设置一个带有您的界面的 XIB。在 Interface Builder 中打开 MainMenu.xib(应该在 Resources 下)并删除它默认抛出的窗口。

关于objective-c - 无窗口 Cocoa 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6784182/

相关文章:

xcode - 如何对基于 View 的表进行排序?

macos - FileMerge .nib 文件类型无法合并

objective-c - OSX - 从缩放按钮禁用全屏模式?

ios - 如何在 Objective C 中自动滚动自定义表格 View 单元格

objective-c - 为什么我的程序会从我不使用的框架中泄漏为我不使用的对象分配的内存?

objective-c - cocoa 窗口最大垂直尺寸,但不是水平尺寸

cocoa - NSDocument 子类没有被 NSWindowController 关闭?

objective-c - NSWindow 设置框架高于屏幕

ios - 如何从多目标应用程序中的特定 plist 获取字符串值?

objective-c - 合成 'global' 对象时出现 EXC_BAD_ACCESS