【问题标题】:How to programmatically set Desktop Background to solid colors in os x?如何在 os x 中以编程方式将桌面背景设置为纯色?
【发布时间】:2020-09-03 16:28:44
【问题描述】:

如何以编程方式在 os x 桌面中将纯色设置为背景? 找到了使用图像以编程方式更改它的方法。

[[NSWorkspace sharedWorkspace]setDesktopImageURL:url forScreen:screen options:nil error:&error];

URL - 图片文件地址, screen - nsscreen 对象, 错误 - nserror 对象。

希望避免使用图像文件等外部资源。 请帮忙

【问题讨论】:

  • 你能在你的包中添加一个带有颜色的图像,然后用setDesktopImageURL 加载它吗?
  • 是的,我可以做到。我正在寻找一种解决方案,我可以忽略捆绑中图像的使用。并设置一个苹果默认的纯色。
  • 然后可能会在你的代码中生成一个纯色图片,暂存到内存中,然后使用上面的函数。

标签: objective-c operating-system


【解决方案1】:

fwiw 我经常想将我的背景设置为白色,但缺少特定的颜色,下面的代码应该可以做到。

    NSError * err;
    NSMutableDictionary < NSWorkspaceDesktopImageOptionKey, id > * m = NSMutableDictionary.dictionary;

    m[NSWorkspaceDesktopImageFillColorKey] = NSColor.whiteColor;
    m[NSWorkspaceDesktopImageScalingKey] = @(NSImageScaleNone);

    // 1x1 png from wikimedia commons
    // may have side effects in a pixel appearing somewhere ....
    // ... couldn't find it though ...
    NSURL * url = [NSBundle.mainBundle URLForResource:@"1x1" withExtension:@"png"];

    [[NSWorkspace sharedWorkspace] setDesktopImageURL:url
                        forScreen:NSScreen.mainScreen
                          options:m
                            error:& err];
    if ( err )
    {
        NSLog ( @"Ooops %@", err );
    }

你可以根据口味改变颜色...

【讨论】:

    猜你喜欢
    • 2011-12-16
    • 2011-06-13
    • 2017-02-18
    • 1970-01-01
    • 1970-01-01
    • 2010-09-30
    • 2021-10-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多