所以这是我目前的问题。我试图创建一个屏幕保护程序,我所做的就是设置这样的背景颜色,
public override func drawRect(rect: NSRect) {
super.drawRect(rect)
let color = NSColor(red:0.33, green:0.78, blue:0.99, alpha:1)
color.setFill()
NSBezierPath.fillRect(rect)
}
相当直接。我还设置了EMBEDDED_CONTENT_CONTAINS_SWIFT = YES;
现在当我去安装.saver
文件时,我收到了一条消息,上面写着
您无法在此版本的OS X中使用屏幕保护程序X
有什么想法吗?
答案 0 :(得分:3)
如果您使用的是Mojave,则Principal类还需要包括模块名称(目标名称):
<key>NSPrincipalClass</key>
<string>[YourTarget].[YourClass]</string>
您可能还需要在Always Embed Swift Standard Libraries
中将YES
设置为Build Settings
,并检查上述的Principles Class。
来源:
https://github.com/JohnCoates/Aerial/issues/464 https://blog.viacom.tech/2016/06/27/making-a-macos-screen-saver-in-swift-with-scenekit/
答案 1 :(得分:1)
如果Info.plist中的Principle Class设置不正确,或者即使它与实际类名不匹配,也会发生这种情况。 (如果类名是“MYCoolSaverView”但Info.plist认为类名是“mYCoolSaverView”,.saver包将正确编译,但是当您尝试在“系统偏好设置”下运行它时,您会看到此错误。)