You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

macOS 13 Ventura:如何通过代码检查与控制Stage Manager状态

在macOS 13 Ventura中通过代码操作Stage Manager

一、检查Stage Manager是否启用

终端命令方式

直接执行以下命令,返回1表示已启用,0表示未启用:

defaults read com.apple.WindowManager StageManagerEnabled

Swift代码方式

读取系统偏好设置判断状态:

import Foundation

func isStageManagerEnabled() -> Bool {
    let defaults = UserDefaults(suiteName: "com.apple.WindowManager")
    return defaults?.bool(forKey: "StageManagerEnabled") ?? false
}

// 使用示例
print(isStageManagerEnabled())

Objective-C代码方式

#import <Foundation/Foundation.h>

BOOL isStageManagerEnabled() {
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    [defaults addSuiteNamed:@"com.apple.WindowManager"];
    return [defaults boolForKey:@"StageManagerEnabled"];
}

// 使用示例
NSLog(@"%d", isStageManagerEnabled());

二、开启/关闭Stage Manager

终端命令方式

  • 开启Stage Manager:
defaults write com.apple.WindowManager StageManagerEnabled -bool true && killall WindowManager
  • 关闭Stage Manager:
defaults write com.apple.WindowManager StageManagerEnabled -bool false && killall WindowManager

注:执行killall WindowManager是为了让配置立即生效,无需重启系统。

Swift代码方式

import Foundation

func setStageManagerEnabled(_ enabled: Bool) {
    let defaults = UserDefaults(suiteName: "com.apple.WindowManager")
    defaults?.set(enabled, forKey: "StageManagerEnabled")
    defaults?.synchronize()
    
    // 重启WindowManager进程使配置生效
    let task = Process()
    task.executableURL = URL(fileURLWithPath: "/usr/bin/killall")
    task.arguments = ["WindowManager"]
    do {
        try task.run()
        task.waitUntilExit()
    } catch {
        print("Failed to restart WindowManager: \(error)")
    }
}

// 使用示例
setStageManagerEnabled(true) // 开启
setStageManagerEnabled(false) // 关闭

Objective-C代码方式

#import <Foundation/Foundation.h>

void setStageManagerEnabled(BOOL enabled) {
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    [defaults addSuiteNamed:@"com.apple.WindowManager"];
    [defaults setBool:enabled forKey:@"StageManagerEnabled"];
    [defaults synchronize];
    
    // 重启WindowManager进程
    NSTask *task = [[NSTask alloc] init];
    [task setLaunchPath:@"/usr/bin/killall"];
    [task setArguments:@[@"WindowManager"]];
    [task launch];
    [task waitUntilExit];
}

// 使用示例
setStageManagerEnabled(YES); // 开启
setStageManagerEnabled(NO); // 关闭

注意:操作需要应用具备辅助功能权限或管理员身份,否则可能无法修改配置或重启进程。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 09:45:46