我正在开发一个小而简单的状态菜单应用程序。
有一个菜单,当用户单击它时,应该会出现一个 HUD 窗口(NSPanel)。这就是我显示面板的方式:
[hudWindow makeKeyAndOrderFront: self];
这就是我关闭窗口的方式:
[hudWindow orderOut: nil];
这就是事件链:
- 当应用程序启动时,我关闭窗口;
- 然后用户(就是我:-))点击菜单项并使面板出现;
- 然后我点击 x 并关闭面板;
- 然后我再次单击菜单项,窗口不再出现。
它不再出现可能是因为它被释放了,而且我放了一个弱存储,否则使用 __unsafe_unretained 它会在第二次启动时崩溃。
所以我猜是否有办法避免在用户点击它时释放窗口。
我尝试过使用强大的存储,但是在第二次启动时我无法再次关闭它,这是一个问题。
有许多菜单状态应用程序能够显示一个窗口,而用户可以“杀死”它,我会做类似的事情。