【发布时间】:2015-08-31 13:14:41
【问题描述】:
我想创建一个主要只涉及状态栏的应用程序。到目前为止,我已经使用 NSMenu 和 NSStatusBar 创建了状态栏项目,并且我还删除了带有这段代码的停靠图标:
[NSApp setActivationPolicy: NSApplicationActivationPolicyAccessory];
但我仍然拥有的是打开应用程序时出现的NSWindow。
如何防止这种情况发生?我也希望能够重新打开它。
我想出了一个可怕的方法来关闭它:
[_mainView setFrame:CGRectMake(0, 0, 0, 0)];
_mainView 是我的视图控制器中连接到nswindow 的主要NSView。
然后我希望能够再次打开窗口,但这次是一张桌子。但我得到了错误:
<Warning>: void CGSUpdateManager::log() const: conn 0x18de3 token 0x31fffffffffdafd
将框架重置为原始大小时。
此外,如果我关闭 NSView,则意味着我无法再次重新打开该视图。
这是对可以控制视图控制器所在的窗口是打开还是关闭的应用程序的冗长解释。
【问题讨论】:
-
您是否尝试过将
appDelegate中的rootViewController设置为零? -
@Fennelouski 可以扩展一下吗?
-
如果您根本不需要窗口控制器,请在 Interface Builder 中删除它(以及视图控制器)
-
但是我写的整个程序不会在加载时运行?
-
我一直在启动时隐藏窗口的方式是
[_window orderOut:self];...如果你想要这样做,那么如果你想显示它,那么[_window makeKeyAndOrderFront:self];。
标签: objective-c xcode macos xcode6