如何在Mac OS应用程序中以编程方式将桌面图像设置为NSWindow背景图像。假设我单击一个按钮,那么无论桌面上有什么图像,它都应应用于NSWindow Background。
答案 0 :(得分:1)
要获取屏幕的桌面图像,请使用NSWorkspace
提供的方法。
方法desktopImageURLForScreen:
返回图像文件的URL,而方法desktopImageOptionsForScreen:
返回桌面图像选项的字典-图像应如何缩放,是否应平铺等。
使用这些方法和NSImageView
,您应该能够显示适当缩放,平铺和对齐的桌面图像作为窗口背景。如果要在多屏幕系统上支持跨屏幕窗口,则涉及的内容会更多一些,但方法基本相同。
HTH
答案 1 :(得分:0)
如果未将应用程序沙盒化,则CRD建议确实起作用。如果是这样,那么您将无法使用request
做任何事情。
您可以使用Core Graphics并获取桌面图片:
yield Request(parse=..., headers={"User-Agent":"user_agent", "Referrer":"url_here", etc.})
然后获取桌面图像
NSWorkspace.shared.desktopImageURL(for: screen)
感谢Cocoa: take screenshot of desktop wallpaper (without icons and windows)和How to get window list from core-grapics API with swift