웹에서 2D 물리엔진 사용하기 #1 Matter.js 시작하기
[소소한 개발 일지] applicationDockMenu을 통해 Dock에 메뉴가 추가되지 않을 때
2024-10-06
Explanation
오늘은 아주아주 짧고 소소하게.
macOS 애플리케이션 개발에서, Dock에 메뉴를 추가하는 방법에 대해 적어보려합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
import SwiftUI @main struct TestApp: App { @NSApplicationDelegateAdaptor(AppDelegate.self) var appDelegate var body: some Scene { WindowGroup { Text("Hello, World!") } } } class AppDelegate: NSObject, NSApplicationDelegate { func applicationDockMenu(_ sender: NSApplication) -> NSMenu? { let dockMenu = NSMenu(title: "MyMenu") let myMenuItem = NSMenuItem(title: "My Item 1", action: #selector(self.menuItemAction), keyEquivalent: "") dockMenu.addItem(myMenuItem) return dockMenu } @objc func menuItemAction() { print("Menu item clicked") } } |
Dock 메뉴 추가는 “NSApplicationDelegate” 프로토콜 클래스에 “applicationDockMenu(_:)” 메서드를 선언하고 원하는 “NSMenu” 프로토콜의 값을 만들어서 응답하면 된답니다. 아주 간단하죠?!
[메서드 정보]
https://developer.apple.com/documentation/appkit/nsapplicationdelegate/1428564-applicationdockmenu
그렇다면, 이렇게 간단함에도 불구하고, 굳이?! 이렇게 포스팅을 한 이유는…
위 설정으로 추가한 Dock 메뉴는 Xcode에서 실행한 애플리케이션에서는 동작하지 않는답니다!!
우선, 빌드를 한 후에 “Xcode” → “Product” → “Show Build Folder in Finder”로 빌드 폴더를 열고 “Products” → “Debug” → “애플리케이션 이름”으로 빌드 된 애플리케이션을 직접 실행해야 위에 추가한 Dock 메뉴가 동작합니다.
전 이 사실을 모르고 몇 시간을..
Advertisement
광고 수익금은 소년소녀가정에 기부됩니다.