【发布时间】:2012-04-24 14:33:24
【问题描述】:
如何更改桌面背景位置(“填充屏幕”、“适合屏幕”、“拉伸以填充屏幕”、“中心”或“平铺”之一)和菜单栏半透明(打开或关闭)来自代码?
基本上,我想模拟“桌面和屏幕保护程序”首选项窗格中的类似功能。
【问题讨论】:
标签: objective-c macos cocoa
如何更改桌面背景位置(“填充屏幕”、“适合屏幕”、“拉伸以填充屏幕”、“中心”或“平铺”之一)和菜单栏半透明(打开或关闭)来自代码?
基本上,我想模拟“桌面和屏幕保护程序”首选项窗格中的类似功能。
【问题讨论】:
标签: objective-c macos cocoa
使用AppleScript,你可以改变菜单栏的半透明:
tell application "System Events"
set translucent menu bar of first desktop to false
end tell
桌面图片有各种属性——change interval、picture、picture rotation、pictures folder 和random order——但与背景位置无关。可能无法通过代码进行配置。
使用脚本桥技术更新:
在终端中,执行:
sdef /System/Library/CoreServices/System\ Events.app | sdp -fh --basename SystemEvents
将生成的 SystemEvents.h 添加到您的项目中。将其导入您的代码。将 ScriptingBridge 框架添加到您的目标。
然后,在您的代码中,您可以执行以下操作:
SystemEventsApplication* SystemEvents = [SBApplication applicationWithBundleIdentifier:@"com.apple.systemevents"];
SystemEvents.currentDesktop.translucentMenuBar = FALSE;
您可以进一步了解脚本桥here。
【讨论】:
Undefined symbols for architecture x86_64: "_OBJC_CLASS_$_SBApplication", referenced from: objc-class-ref in TAppDelegate.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)