Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 在Cocoa应用程序中加载壁纸(或背景层)_Objective C_Cocoa_Startup - Fatal编程技术网

Objective c 在Cocoa应用程序中加载壁纸(或背景层)

Objective c 在Cocoa应用程序中加载壁纸(或背景层),objective-c,cocoa,startup,Objective C,Cocoa,Startup,我已经在U盘上创建了一个非常小的OS X安装,用作紧急引导介质。基本上,这个安装是MacOSX安装DVD的克隆,安装程序和软件包都被剥离了。我有自己的启动守护进程,在安装启动时启动应用程序启动器 现在的问题是,壁纸只是一个空白的灰色屏幕,就像你第一次启动OSX和安装助手时的背景一样。我想加载自定义壁纸。我已经尝试过使用NSWorkspace的setDesktopImageURL:forScreen:options:error方法。此方法在使用完整的OS X安装时有效,但在我的最小安装上无效 我举

我已经在U盘上创建了一个非常小的OS X安装,用作紧急引导介质。基本上,这个安装是MacOSX安装DVD的克隆,安装程序和软件包都被剥离了。我有自己的启动守护进程,在安装启动时启动应用程序启动器

现在的问题是,壁纸只是一个空白的灰色屏幕,就像你第一次启动OSX和安装助手时的背景一样。我想加载自定义壁纸。我已经尝试过使用NSWorkspace的setDesktopImageURL:forScreen:options:error方法。此方法在使用完整的OS X安装时有效,但在我的最小安装上无效

我举的一个在这个最小界面中加载墙纸的例子是苹果在OSX安装程序DVD/System/Installation/CDIS中的LCA.app。它在您引导OSX DVD时启动语言选择器,并加载自定义背景墙纸。我已经查看了使用otool的应用程序的二进制文件,我看到有一些方法可以加载墙纸,但它们似乎是应用程序使用的私有方法


有人对如何做到这一点有什么想法吗?我能看到的一种可能性是,在我的应用程序后面加载一层作为壁纸。可以这样做吗?

您可以在以下位置添加图像:

/System/Library/CoreServices/DefaultDesktop.jpg


真不敢相信我没想到:我现在就去试试。同时,这里是LCA二进制文件的otool输出,显示它对墙纸做了一些事情:恐怕这就是我的全部。对不起-/我设法弄明白了。解决方案只是制作一个应用程序,加载一个无边界窗口,使用图像填充屏幕框架,然后将窗口级别设置为NSNormalWindowLevel-1,使其位于菜单栏下。看起来就像一张真正的壁纸:-