Kaynağa Gözat

Add a status bar shortcut to open the launcher window.

This lets users click the menu bar icon to bring the first app page to the front quickly from anywhere.

Made-with: Cursor
huzaifahayat12 3 ay önce
ebeveyn
işleme
c39195e324
1 değiştirilmiş dosya ile 27 ekleme ve 2 silme
  1. 27 2
      google_apps/AppDelegate.swift

+ 27 - 2
google_apps/AppDelegate.swift

@@ -9,11 +9,36 @@ import Cocoa
 
 @main
 class AppDelegate: NSObject, NSApplicationDelegate {
+    private var statusItem: NSStatusItem?
 
-    
+    func applicationDidFinishLaunching(_ aNotification: Notification) {
+        configureMainWindowIfNeeded()
+        setupStatusBarItem()
+    }
 
+    private func setupStatusBarItem() {
+        let item = NSStatusBar.system.statusItem(withLength: NSStatusItem.squareLength)
+        statusItem = item
 
-    func applicationDidFinishLaunching(_ aNotification: Notification) {
+        guard let button = item.button else { return }
+        button.image = NSImage(systemSymbolName: "square.grid.2x2.fill", accessibilityDescription: "My Apps")
+        button.image?.isTemplate = true
+        button.action = #selector(openMainWindowFromStatusBar)
+        button.target = self
+        button.sendAction(on: [.leftMouseUp, .rightMouseUp])
+    }
+
+    @objc
+    private func openMainWindowFromStatusBar() {
+        configureMainWindowIfNeeded()
+        NSApp.setActivationPolicy(.regular)
+        NSApp.activate(ignoringOtherApps: true)
+        if let window = NSApp.windows.first {
+            window.makeKeyAndOrderFront(nil)
+        }
+    }
+
+    private func configureMainWindowIfNeeded() {
         guard let window = NSApp.windows.first else { return }
         window.title = "My Apps"
         window.isOpaque = false