V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
covvee
V2EX  ›  Swift

Swift 如何打开某个指定的 window?

  •  
  •   covvee · 2023-01-13 21:57:29 +08:00 · 1170 次点击
    这是一个创建于 704 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我现在能获取所有当前打开的 window ,使用如下代码:

    let options = CGWindowListOption(arrayLiteral: .excludeDesktopElements, .optionOnScreenOnly)
    let windowsListInfo = CGWindowListCopyWindowInfo(options, CGWindowID(0))
    let infoList = windowsListInfo as! [[String:Any]]
    let visibleWindows = infoList.filter{ $0["kCGWindowLayer"] as! Int == 0 }
    
    

    我观察到,所有 window 用的是同一个 Pid,但是有不同的 kCGWindowNumber

    ["kCGWindowSharingState": 0, "kCGWindowLayer": 0, "kCGWindowNumber": 34257, "kCGWindowOwnerName": 访达, "kCGWindowAlpha": 1, "kCGWindowOwnerPID": 584, "kCGWindowMemoryUsage": 2288, "kCGWindowStoreType": 1, "kCGWindowIsOnscreen": 1, "kCGWindowBounds": {
                                    Height = 910;
                                    Width = 957;
                                    X = 555;
                                    Y = 38;
                                }]
    

    比如说我 vscode 打开了两个窗口,一个 window 写前端,一个写后端。swift 现在有没有哪个 api 可以指定打开某个 window?

    查了一个早上,也看到很多人有相同的问题,都没有得到答案。

    类似这样的提问有很多,就是几乎都没有答案。 https://stackoverflow.com/questions/47152551/activate-a-window-using-its-window-id

    第一天学 osx 开发,关于这一点搜了一天资料也没有找到答案。求教各位了。

    有人跟我说可以试试 applescript 来实现。但是我不管怎么写都不行,很奇怪。

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4227 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 10:13 · PVG 18:13 · LAX 02:13 · JFK 05:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.