以编程方式更改壁纸

时间:2017-06-30 10:02:13

标签: swift macos

我正在制作一款以编程方式更改壁纸的应用 那是我的代码:

do{
    let imgurl = NSURL.fileURL(withPath: self.app_path+self.wallpaper_folder_name+self.file_name);
    let workspace = NSWorkspace.shared();
    if let screen = NSScreen.main(){
        try workspace.setDesktopImageURL(imgurl, for: screen, options: [:]);
        do{
            print("Awesome !");
        }
    }
}catch{
    print(error);
}

它正在工作(部分)。

问题是:

如果我查看桌面并更改壁纸,请执行以下操作: enter image description here 它在工作:D

但是,当我在应用 in fullScreen 中更改我的壁纸时,如下所示: enter image description here 壁纸不会改变(没有错误) 所以,你知道为什么吗?以及如何解决?

修改

试图使用该代码

let screens = NSScreen.screens()!;
print("SIZE : "+String(screens.count));
for screen in screens{
    print("TRY ...");
    try workspace.setDesktopImageURL(imgurl, for: screen, options: [:]);
    do{
        print("DONE");
    }
}

但它打印了我" SIZE:1" (当我在全屏幕上看应用程序时)...
并且不要改变我的壁纸:/

0 个答案:

没有答案