如何指定哪个NSMenu是XIB文件中的主菜单?

时间:2018-04-15 06:36:11

标签: macos interface-builder xib nsmenu

长期以来,iOS开发人员在macOS世界中沾沾自喜。只是想更好地理解Mac应用程序的工作原理。

对于基于XIB的非故事板应用程序,模板会创建一个默认的xib,而inside是应用程序的主菜单。

但是,如果我删除该XIB,然后创建一个新的,如何设置菜单作为应用程序的主菜单?它似乎忽略了我创造的任何东西。另外,当我添加一个时,图形看起来与原始图像不同;在这里,它是垂直堆叠的,而原件是水平堆叠的。

那么,如何创建第二个xib(如果你删除了第一个xib)并替换其中的主菜单?

1 个答案:

答案 0 :(得分:1)

您必须执行两个步骤才能将主菜单更改为另一个XIB文件中的菜单:

  1. 将应用程序的目标常规标签中的部署信息中的主界面更改为新的XIB文件。 enter image description here
  2. 打开新XIB文件的源代码并搜索新的主菜单。这是一个名为menu的XML标记。向其中添加名为systemMenu的属性,其值为main。这应该是:

    <menu title="Second Menu" systemMenu="main" id="usV-GH-tFG" userLabel="New Main Menu">
    
  3. 现在,您的应用应使用新的主菜单作为系统菜单。某些子菜单还应包含值为systemMenuappleservicesrecentDocumentsfont的{​​{1}}个属性。如果您进行了此更改,Interface Builder中的显示也会更改。

    构建新菜单需要花费一些精力,因为您必须创建相当多的子菜单和条目。

    但是这样你很容易犯错误,所以你最好通过复制现有主菜单来创建一个新的主菜单。