【问题标题】:When the user closes the main application window there is no menu item to re-open it, Xcode, MacOs app当用户关闭主应用程序窗口时,没有菜单项可以重新打开它,Xcode,MacOs 应用程序
【发布时间】:2023-03-03 18:12:01
【问题描述】:

我的 MacOs 应用程序已被拒绝。 要解决的问题之一是:

应用程序实现一个窗口菜单是合适的 列出主窗口,以便可以重新打开它,或提供类似的 另一个菜单项中的功能。 macOS 人机界面指南 声明“菜单栏 [a] 始终包含 [a] 窗口菜单”。

我真的不明白该怎么办...这是我第一次提交MacOs App...

这是我的AppDelegate.swift file

【问题讨论】:

  • 这是您需要展示的菜单资源,在您的故事板中。
  • 感谢您的回复,感谢您,我离我越来越近了……目前,我的故事板看起来像一个简单的单杠,没有任何附加内容。没有附加视图。我将进一步挖掘以了解如何将主窗口附加到窗口菜单。
  • 如果您在 Xcode 中创建一个新的 macOS 应用程序,使用单个视图或其他方式,您应该会看到它是如何完成的。

标签: xcode macos menuitem


【解决方案1】:

请在下面找到我与您分享的解决方案。 感谢 Trojanfoe 为我指明了正确的方向。 希望对像我这样的 MacOS 初学者有所帮助。

我的应用有一个主页,您在启动时会看到该主页,只要您不进行交互,它就会一直显示在屏幕上。 互动后,您将离开主页并且无法返回,因为应用程序中没有允许它的按钮,或者没有允许它的主窗口菜单项。

Apple 审核团队拒绝了我的应用并说: « 具体来说,我们发现当用户关闭主应用程序窗口时,没有菜单项可以重新打开它。应用程序最好实现一个列出主窗口的窗口菜单,以便可以重新打开它或在另一个菜单项中提供类似的功能。 macOS 人机界面指南声明“菜单栏始终包含一个窗口菜单”。

然后我在 Stackoverflow 和网络上寻求帮助,最后找到了以下解决方案,即添加一个窗口菜单项,如果单击该菜单项将显示主页。

点击 Main.storyboard 显示主菜单

点击窗口的菜单项

单击 + 选择一个菜单项并将其拖到窗口的菜单项中

将项目重命名为上方左右位置的“主页”

打开右侧的 AppDelegate.swift 文件

CTRL + 将“主页”项拖到 AppDelegate.swift 文件以创建 IBAction

IBAction 现在可以填满了

告诉操作显示主页视图(在我的应用中是 ContentView())

现在,如果我们启动应用程序,我们在主菜单窗口中有一个“主页”项,如果我们单击它,我们会转到 ContentView(),即我的应用程序主页。

操作代码:

@IBAction func DisplayHomePAge(_ sender: NSMenuItem) {
    window.contentView = NSHostingView(rootView: ContentView())
}

【讨论】:

  • 我的MacOS应用又被拒绝了!苹果审查团队表示:“你的应用程序的用户界面与 macOS 人机界面指南不一致。具体来说,我们发现当用户关闭主应用程序窗口时,没有菜单项可以重新打开。Window 选项卡按下时不响应。应用程序应该实现一个列出主窗口的窗口菜单,以便可以重新打开它,或者在另一个菜单项中提供类似的功能。macOS 人机界面指南指出“菜单栏始终包含一个窗口菜单”。
  • 要解决这个问题,我们必须找到添加到 IBAction 的代码,该代码将允许应用程序在使用位于所有应用程序左上角的红点关闭后重新打开窗户。目前,IBAction 在应用程序运行时重新打开 ContentView,但如果关闭则不会重新打开应用程序。
  • 最后我实现了我在stackoverflow上解释的这个解决方案:stackoverflow.com/questions/61149135/…
猜你喜欢
  • 2021-06-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-05
  • 2021-11-23
  • 2013-06-04
  • 1970-01-01
相关资源
最近更新 更多