You need to enable JavaScript to run this app. 已有添加桌面空间的脚本,如何编写关闭桌面的AppleScript?
优惠活动
大模型
产品
解决方案
定价
更多

已有添加桌面空间的脚本,如何编写关闭桌面的AppleScript?

桌面空间关闭功能实现说明

Mission Control 中用于删除桌面的关闭叉号并非常驻可见元素,只有当鼠标悬浮在对应桌面缩略图上时才会渲染展示,这也是直接用辅助功能检查器扫描找不到对应按钮属性的核心原因。

具体实现逻辑

  • 保持原有唤起 Mission Control、进入 Dock 进程下空间列表层级的基础逻辑
  • 定位到需要关闭的目标桌面元素,向元素发送悬浮触发信号,唤出隐藏的关闭按钮
  • 匹配对应关闭按钮的 AX 描述完成点击,部分系统版本需要点击删除确认弹窗的对应按钮
  • 操作完成后退出 Mission Control 界面

补全后的完整可运行脚本

on run
    -- 切换到对应功能的触发入口
    my closeSpace()
end run

on openSpace()
    tell application "System Events"
        tell application "Mission Control" to launch
        tell group 2 of group 1 of group 1 of process "Dock"
            click (every button whose value of attribute "AXDescription" is "add desktop")
            tell list 1
                set countSpaces to count of buttons
                delay 0.5
                click button (countSpaces)
            end tell
        end tell
    end tell
end openSpace

on closeSpace()
    tell application "System Events"
        -- 等待Mission Control完全加载
        tell application "Mission Control" to launch
        delay 0.8
        
        tell group 2 of group 1 of group 1 of process "Dock"
            tell list 1
                -- 默认定位最后一个新增的桌面,可根据需求调整元素序号
                set targetSpace to last button
                -- 触发元素悬浮状态,唤出隐藏的关闭叉号
                perform action "AXShowMenu" of targetSpace
                delay 0.3
                
                -- 点击关闭按钮,不同系统版本可匹配对应的AXDescription文本
                click (every button whose value of attribute "AXDescription" is "Close Desktop")
            end tell
            
            -- 处理系统弹出的删除确认弹窗
            try
                click button "删除" of window 1 of process "Dock"
            end try
        end tell
        
        -- 退出Mission Control回到桌面
        tell application "Mission Control" to quit
    end tell
end closeSpace

调试注意点

  • 延迟阈值需要根据设备性能调整,过短的等待时间会导致Mission Control未加载完成、元素找不到的报错
  • 不同本地化语言、不同macOS版本的按钮AXDescription文本存在差异,如果点击无响应,可以打印当前列表下所有按钮的AX描述值做匹配
  • 非悬浮状态下关闭按钮不会被注册到UI元素树中,直接扫描查找会出现找不到元素的情况,必须先触发悬浮交互

内容的提问来源于stack exchange,提问作者Jordan Farris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.27 12:36:10