我一次要做很多事情,有时这让人不知所措。学习如何构建 macOS(带有菜单栏和设置窗口),同时学习 swift,有时尝试将 Objective C 教程改编为 Swift。
我已关注this tutorial帮助我开始使用带有菜单栏的应用程序。我已经让它工作了,但现在我想稍微改进一下。
此示例中的所有菜单设置都位于 AppDelegate 类中。由于我的应用程序中有更多的内容,一个设置窗口,我还必须在其中使用表格,因此我想将菜单相关的内容清理到一个名为 MenuLoader 的负责类。
我将所有菜单构建相关代码从 AppDelegate 移至 MenuLoader,并在 AppDelegate 的 applicationDidFinishLaunching 方法上实例化 MenuLoader。
当我运行代码时,应用程序菜单栏项目似乎在加载时出现,有一些断点,我可以清楚地看到对象存在并具有预期的属性,但随后它就消失了。恐怕我缺少 AppDelegate 用于保持引用的菜单栏关系的一些连接。
所以我的问题是:是否有可能有一个单独的类只处理状态菜单栏,而不是在 AppDelegate 上弄得一团糟?如果您认为这可能是我的实现问题,我会在这里发布一些代码,尽管我不确定它会产生很大的影响。
最佳答案
当然可以有一个单独的类。只要逻辑相同,将代码移动到另一个类中就不会改变功能。
如果某些东西消失了,则可能您没有对该对象持有强引用,因此一旦超出范围,它就会被释放。您可能需要:
class MyClass {
var:MyObject! // use this to store the reference to your object
...
}
如果这没有帮助,请发布一些代码。
关于macos - Swift - 是否可以在 MacOS ManuBar 应用程序中的 AppDelegate 类之外构建菜单栏项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26815485/