如何使用窗口菜单项 IBAction 重新打开已关闭的 MacOS 应用程序(使用位于左上角的红色按钮)?

Posted

技术标签:

【中文标题】如何使用窗口菜单项 IBAction 重新打开已关闭的 MacOS 应用程序(使用位于左上角的红色按钮)?【英文标题】:How to use a window menu item IBAction to re-open a MacOS app that has been closed (by using the red button located on the top left corner)? 【发布时间】:2020-04-10 11:21:43 【问题描述】:

大家好, 八个月前,有人问了几乎相同的问题,但没有答案。 我的 MacOS 已被拒绝,因为如果我们使用位于左上角的红点将其关闭,则 Window 菜单项没有重新打开 MacOS 应用程序的菜单项。 我创建了一个链接到 IBAction 以显示 ContentView()(主页)的菜单项。 当应用程序运行时它可以正常工作,如果您单击此按钮项(代码如下),您可以返回主页。但是使用什么代码重新打开应用程序?提前致谢。

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

【问题讨论】:

【参考方案1】:

最后是 IBAction 的代码:

@IBAction func DisplayHomePAge(_ sender: NSMenuItem) 
let url = URL(fileURLWithPath: Bundle.main.resourcePath!)
let path = url.deletingLastPathComponent().deletingLastPathComponent().absoluteString
let task = Process()
task.launchPath = "/usr/bin/open"
task.arguments = [path]
task.launch()
exit(0)

我在这个链接找到了这段代码:

enter link description here

【讨论】:

以上是关于如何使用窗口菜单项 IBAction 重新打开已关闭的 MacOS 应用程序(使用位于左上角的红色按钮)?的主要内容,如果未能解决你的问题,请参考以下文章

在 Swift 中打开一个关闭的 NSWindow 会导致应用程序崩溃

在新窗口中打开的反应导航栏菜单项

作业-窗口

Java 窗口菜单

如何提供“退出”菜单项 [重复]

Java中的窗口应用程序的设计