【问题标题】:Add Running Apps to Picker in macOS在 macOS 中将正在运行的应用程序添加到选择器
【发布时间】:2022-12-12 03:03:31
【问题描述】:

我想获取 macOS 上所有正在运行的应用程序并将它们添加到 Picker 视图,但我不知道该怎么做。

Picker(selection: $stopAppTerminate.onChange(StopAppTerminateChange), label: Text("Wait for App Termination ")) {
                var workspace = NSWorkspace.shared
                var applications = workspace.runningApplications
                var i: Int = 0

                ForEach(applications) { application in //, id: \.localizedName) { application in
                    Text(String(application)).tag(i + 1)
                }
            }

但是 ForEach 循环无法通过“在对初始化程序的调用中没有完全匹配”进行编译。

【问题讨论】:

    标签: swift swiftui


    【解决方案1】:
        @State private var selectedApp: NSRunningApplication?
        
        var body: some View {
            var workspace = NSWorkspace.shared
            var applications = workspace.runningApplications
            
            Picker("App", selection: $selectedApp) {
                Text("No selection").tag(nil as NSRunningApplication?)
                ForEach(applications, id: .bundleIdentifier) { app in
                    HStack {
                        if let icon = app.icon {
                            Image(nsImage: icon)
                        }
                        Text(app.localizedName ?? "?")
                    }
                    .tag(app as NSRunningApplication?)
                }
            }
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-25
      • 2018-07-10
      • 1970-01-01
      • 2012-09-06
      • 1970-01-01
      相关资源
      最近更新 更多