AppKit菜单栏构建器 appkit-menu-bar-builder

这是一个用于macOS系统开发的技能,专门为菜单栏应用程序生成NSMenu和NSStatusItem配置。它能快速创建状态栏图标、菜单结构,并集成SwiftUI弹出视图,支持键盘快捷键、动态更新和深浅模式适配。关键词:macOS开发,AppKit,菜单栏应用,SwiftUI集成,状态栏图标,NSMenu配置。

移动开发 0 次安装 0 次浏览 更新于 2/23/2026

名称: appkit-menu-bar-builder 描述: 为macOS菜单栏应用程序生成NSMenu和NSStatusItem配置 允许使用的工具: 读取, 写入, 编辑, Bash, Glob, Grep 标签: [macos, appkit, menubar, statusitem, swift]

appkit-menu-bar-builder

为macOS菜单栏应用程序生成NSMenu和NSStatusItem配置。此技能用于创建具有正确状态项、菜单和SwiftUI集成的菜单栏应用程序。

功能

  • 创建NSStatusItem菜单栏应用程序
  • 生成NSMenu配置
  • 将SwiftUI弹出窗口与AppKit集成
  • 处理菜单项操作
  • 配置键盘快捷键
  • 支持动态菜单更新
  • 处理浅色/深色模式图标
  • 生成代理应用程序配置(LSUIElement)

输入模式

{
  "type": "object",
  "properties": {
    "projectPath": { "type": "string" },
    "appType": { "enum": ["menu-only", "popover", "window-and-menu"] },
    "menuStructure": { "type": "array" },
    "iconType": { "enum": ["system", "custom", "dynamic"] },
    "useSwiftUI": { "type": "boolean", "default": true }
  },
  "required": ["projectPath"]
}

生成的代码

import AppKit
import SwiftUI

class StatusBarController {
    private var statusItem: NSStatusItem
    private var popover: NSPopover

    init() {
        statusItem = NSStatusBar.system.statusItem(withLength: NSStatusItem.variableLength)
        popover = NSPopover()
        popover.contentSize = NSSize(width: 300, height: 400)
        popover.behavior = .transient
        popover.contentViewController = NSHostingController(rootView: ContentView())

        if let button = statusItem.button {
            button.image = NSImage(systemSymbolName: "star.fill", accessibilityDescription: "App")
            button.action = #selector(togglePopover)
            button.target = self
        }
    }

    @objc func togglePopover() {
        if popover.isShown {
            popover.performClose(nil)
        } else if let button = statusItem.button {
            popover.show(relativeTo: button.bounds, of: button, preferredEdge: .minY)
        }
    }
}

相关技能

  • swiftui-view-generator
  • macos-entitlements-generator