objective-c - 设置背景图片位置

标签 objective-c macos app-store applescript

是否有任何符合 Mac App Store 的方式将桌面墙纸位置设置为“拉伸(stretch)以填满屏幕”?

最佳答案

This code sample from Apple很好地概述了问题以及如何在 Cocoa 中正确编码。突出的代码片段如下所示:

- (void)updateScreenOptions:(NSScreen*)screen
{
    if (screen)
    {
        NSDictionary *screenOptions = [[NSWorkspace sharedWorkspace] desktopImageOptionsForScreen:curScreen];

        // the value is an NSNumber containing an NSImageScaling (scaling factor)
        NSNumber *scalingFactor = [screenOptions objectForKey:NSWorkspaceDesktopImageScalingKey];
        [scalingPopup selectItemAtIndex:[scalingFactor integerValue]];

        // the value is an NSNumber containing a BOOL (allow clipping)
        NSNumber *allowClipping = [screenOptions objectForKey:NSWorkspaceDesktopImageAllowClippingKey];
        [[clippingCheckbox cell] setState:[allowClipping boolValue]];

        // the value is an NSColor (fill color)
        NSColor *fillColorValue = [screenOptions objectForKey:NSWorkspaceDesktopImageFillColorKey];
        if (fillColorValue)
            [fillColor setColor:fillColorValue];
    }
}

some of the answer errata 中所述,此处解决您问题的正确方法调用似乎是 [screenOptions setObject:scalingFactor forKey:NSWorkspaceDesktopImageScalingKey][[NSWorkspace sharedWorkspace] setDesktopImageURL:imageURL forScreen:curScreen options:screenOptions error:&error ],它应该提供所需的功能。

我坦白承认this was a collaborative effort ,但似乎我们已经错误地找到了正确的解决方案。

(关于 NSImageScaling 枚举和 NSWorkspace 的附加信息,其中包含正确的缩放键。)

关于objective-c - 设置背景图片位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10140329/

相关文章:

iphone - 导航 Controller : pushViewController

ios - 应用程序加载器 - 您的 apple id 或密码输入错误 - iOS

xcode - 命令/usr/bin/codesign 在 Xcode 11 上失败,退出代码为 1

macos - NSView 自动调整大小以适应内容 View

objective-c - Cocoa/Xcode - OSX 复古兼容性

java - 是什么导致 OS X 上的 Java VM 崩溃并显示 "Invalid memory access of location java"?

iphone - 应用提交到应用商店后添加 iOS 推送通知

不允许 iOS 中央写入

ios - 从文档文件夹中获取所有图像

iOS 8.3 : Why is the navigation bar background color for MFMailComposeViewController still white?