如何在macOS(不是iOS)上的SwiftUI中以编程方式从后台打开应用程序窗口?

迈克·克里滕登

我有一个非常简单的SwiftUI应用程序,该应用程序在菜单栏中运行,应该从后台重复计时器内部定期打开一个应用程序窗口(整个应用程序中只有一个窗口/视图)。

我实际上如何从代码打开应用程序窗口?

这是一个简化的AppDelegate.swift示例,显示了我要执行的操作:

import Cocoa
import SwiftUI

@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {  
    var window: NSWindow!

    func applicationDidFinishLaunching(_ aNotification: Notification) {
        // Create the SwiftUI view that provides the window contents.
        let contentView = ContentView()

        // Create the window and set the content view. 
        window = NSWindow(
            contentRect: NSRect(x: 0, y: 0, width: 480, height: 300),
            styleMask: [.titled, .closable, .miniaturizable, .resizable, .fullSizeContentView],
            backing: .buffered, defer: false)
        window.center()
        window.setFrameAutosaveName("Main Window")
        window.contentView = NSHostingView(rootView: contentView)
        window.makeKeyAndOrderFront(nil)

        var loop = 0
        Timer.scheduledTimer(withTimeInterval: 1.0, repeats: true) { timer in
            loop+=1
            if (loop % 10 == 0) {
                // TODO: How to close the window?
            } else {
                // TODO: How to reopen the window?
            }
        }
    }
}
乔基姆·丹尼尔森(Joakim Danielson)

一种方法是隐藏/取消隐藏应用程序本身

func applicationDidFinishLaunching(_ aNotification: Notification) {
    //setup of window etc ...

    Timer.scheduledTimer(withTimeInterval: 3, repeats: true, block: { _ in
        if self.window.isVisible {
            NSApp.hide(self)
        } else {
            NSApp.unhide(self)
        }
    })
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在iOS 7应用程序上启用后台更新

来自分类Dev

如何从iOS中的后台任务打开应用程序?

来自分类Dev

如何在Windows中以编程方式关闭打开的文件/应用程序?

来自分类Dev

如何在IIS 8上以编程方式设置应用程序池标识

来自分类Dev

如何在Swift中以编程方式获取iPad / iPhone应用程序的大小

来自分类Dev

在应用程序中以编程方式停靠“打开隐藏”

来自分类Dev

如何以编程方式从iOS应用程序打开Apple Watch伴侣应用程序

来自分类Dev

如何以编程方式在应用程序设置中打开应用程序许可窗口

来自分类Dev

如何在SwiftUI macOS应用程序中模糊背景?

来自分类Dev

如何在已经运行的Electron应用程序中通过“打开方式”打开文件?

来自分类Dev

iOS 14-如何以编程方式打开默认邮件应用程序?

来自分类Dev

如何在macOS上以编程方式按名称打开应用程序?

来自分类Dev

如何以编程方式在macOS SwiftUI应用中打开``设置''窗口

来自分类Dev

如何在照片图像的“打开方式或共享方式”中添加应用程序?

来自分类Dev

如何在Cocoa应用程序中的特定应用程序上激活特定窗口(但不是所有窗口)?

来自分类Dev

如何在iPhone应用程序中以编程方式隐藏应用程序图标

来自分类Dev

如何以编程方式从应用程序打开呼叫面板

来自分类Dev

在macOS上以编程方式打开About App窗口

来自分类Dev

如何在Deepin中制作快捷方式以打开扩展坞面板上的应用程序?

来自分类Dev

iOS如何在应用程序中打开WebView

来自分类Dev

在iOS Cordova应用程序中打开iTunes窗口

来自分类Dev

如何在我的应用程序ios 10中打开默认音乐应用程序

来自分类Dev

如何在GNOME 3上以编程方式在特定工作区中启动应用程序

来自分类Dev

iOS 如何在邮件应用程序中打开 PDF?

来自分类Dev

如何在 xamarin ios 应用程序中打开邮件应用程序窗口?

来自分类Dev

如何在魅族(FLYME OS)上以编程方式打开应用程序的安全页面(在设置中)?

来自分类Dev

如何在android studio中以编程方式在最近的应用程序中锁定应用程序

来自分类Dev

如何以编程方式为应用程序购买中的 iOS 创建产品 ID?

来自分类Dev

如何在ios中以编程方式从后台删除应用程序

Related 相关文章

  1. 1

    如何在iOS 7应用程序上启用后台更新

  2. 2

    如何从iOS中的后台任务打开应用程序?

  3. 3

    如何在Windows中以编程方式关闭打开的文件/应用程序?

  4. 4

    如何在IIS 8上以编程方式设置应用程序池标识

  5. 5

    如何在Swift中以编程方式获取iPad / iPhone应用程序的大小

  6. 6

    在应用程序中以编程方式停靠“打开隐藏”

  7. 7

    如何以编程方式从iOS应用程序打开Apple Watch伴侣应用程序

  8. 8

    如何以编程方式在应用程序设置中打开应用程序许可窗口

  9. 9

    如何在SwiftUI macOS应用程序中模糊背景?

  10. 10

    如何在已经运行的Electron应用程序中通过“打开方式”打开文件?

  11. 11

    iOS 14-如何以编程方式打开默认邮件应用程序?

  12. 12

    如何在macOS上以编程方式按名称打开应用程序?

  13. 13

    如何以编程方式在macOS SwiftUI应用中打开``设置''窗口

  14. 14

    如何在照片图像的“打开方式或共享方式”中添加应用程序?

  15. 15

    如何在Cocoa应用程序中的特定应用程序上激活特定窗口(但不是所有窗口)?

  16. 16

    如何在iPhone应用程序中以编程方式隐藏应用程序图标

  17. 17

    如何以编程方式从应用程序打开呼叫面板

  18. 18

    在macOS上以编程方式打开About App窗口

  19. 19

    如何在Deepin中制作快捷方式以打开扩展坞面板上的应用程序?

  20. 20

    iOS如何在应用程序中打开WebView

  21. 21

    在iOS Cordova应用程序中打开iTunes窗口

  22. 22

    如何在我的应用程序ios 10中打开默认音乐应用程序

  23. 23

    如何在GNOME 3上以编程方式在特定工作区中启动应用程序

  24. 24

    iOS 如何在邮件应用程序中打开 PDF?

  25. 25

    如何在 xamarin ios 应用程序中打开邮件应用程序窗口?

  26. 26

    如何在魅族(FLYME OS)上以编程方式打开应用程序的安全页面(在设置中)?

  27. 27

    如何在android studio中以编程方式在最近的应用程序中锁定应用程序

  28. 28

    如何以编程方式为应用程序购买中的 iOS 创建产品 ID?

  29. 29

    如何在ios中以编程方式从后台删除应用程序

热门标签

归档