diff --git a/WireGuard/WireGuard/Base.lproj/Localizable.strings b/WireGuard/WireGuard/Base.lproj/Localizable.strings index 4605040..369cfcc 100644 --- a/WireGuard/WireGuard/Base.lproj/Localizable.strings +++ b/WireGuard/WireGuard/Base.lproj/Localizable.strings @@ -232,6 +232,7 @@ "macMenuAddEmptyTunnel" = "Add empty tunnel..."; "macMenuExportLog" = "Export log to file..."; "macMenuExportTunnels" = "Export tunnels to zip..."; +"macMenuQuit" = "Quit"; // Mac manage tunnels window diff --git a/WireGuard/WireGuard/UI/macOS/StatusMenu.swift b/WireGuard/WireGuard/UI/macOS/StatusMenu.swift index add91ae..a8a913f 100644 --- a/WireGuard/WireGuard/UI/macOS/StatusMenu.swift +++ b/WireGuard/WireGuard/UI/macOS/StatusMenu.swift @@ -41,6 +41,8 @@ class StatusMenu: NSMenu { addItem(NSMenuItem.separator()) } addTunnelManagementItems() + addItem(NSMenuItem.separator()) + addApplicationItems() } required init(coder decoder: NSCoder) { @@ -118,6 +120,12 @@ class StatusMenu: NSMenu { addItem(importItem) } + func addApplicationItems() { + let quitItem = NSMenuItem(title: tr("macMenuQuit"), action: #selector(NSApplication.terminate), keyEquivalent: "") + quitItem.target = NSApp + addItem(quitItem) + } + @objc func tunnelClicked(sender: AnyObject) { guard let tunnelMenuItem = sender as? NSMenuItem else { return } guard let tunnel = tunnelMenuItem.representedObject as? TunnelContainer else { return }