如何在没有 .xib 或故事板文件的情况下向应用程序添加菜单?

Posted

技术标签:

【中文标题】如何在没有 .xib 或故事板文件的情况下向应用程序添加菜单?【英文标题】:How to add a menu to an application without .xib or storyboard file? 【发布时间】:2015-08-31 12:56:12 【问题描述】:

我的应用程序没有可用的菜单栏。菜单栏中只有应用程序名称。由于我的 .xib 文件中没有相关窗口,因此无法以这种方式链接它。虽然菜单包含在 .xib 文件中。

我尝试了许多不同的解决方案,例如:

[[NSApplication sharedApplication] setMenu:mainMenu];

但他们根本没有工作。没有菜单出现,像往常一样只有应用程序名称。

我将不胜感激所有可能的帮助:)

干杯!

【问题讨论】:

【参考方案1】:

如果您在 XIB 中有菜单,但您的菜单类未链接(看不到类值),则:

打开 xib 文件 -> 选择 V​​iew Controller -> 显示实用程序面板(右侧菜单)-> 选择 Identity Inspector 选项卡 -> 将“类”编辑为 xxx

其中 xxx 是您的班级名称。

如果您不使用任何情节提要或任何包含主应用程序窗口的 xib 文件,则:

您必须在 AppDelegate.m->AppDidFinishLoading 方法中手动添加 UIWindow。

将根视图控制器设置为该 UIWindow:

[window setRootViewController:[self mainView]];
[window makeKeyAndVisible];

【讨论】:

没有一个方法叫 setRootViewController :(

以上是关于如何在没有 .xib 或故事板文件的情况下向应用程序添加菜单?的主要内容,如果未能解决你的问题,请参考以下文章

没有使用 Swift 的故事板或 xib 文件的 OSX 应用程序

如何制作没有 xib 或故事板 vc 标识符的视图控制器?

如何在不使用自动布局的情况下以 XIB/故事板大小查看手机尺寸

如何在没有 xib 文件的情况下集成 iAD

如何:访问故事板中的服务对象?

如何在 MyScene(SKScene 的子类)中打开 xib 或故事板窗口?