【问题标题】:Add button to OSX lock screen将按钮添加到 OSX 锁定屏幕
【发布时间】:2026-01-08 16:05:01
【问题描述】:

是否可以更改现有的 OSX 锁定屏幕?例如,如果我想在用户个人资料图片上方添​​加一个按钮,点击时显示“Hello World”。这可能吗?

目标是在单击按钮时运行 AppleScript。

编辑 -

/System/Library/PrivateFrameworks/LoginUIKit.framework

在这里,您可以更改登录屏幕图像等,但它还包含几个已编译的 nib 文件,缩写为“LUI”,我假设它代表“锁定用户界面”。我即将设置并行并尝试使用 xcode 3.2.6 在 Snow Leopard 中打开它们,看看我是否可以编辑笔尖。如果我能够做到这一点,编辑此类文件是否会违反其 TOS?

另一种可能性是在它上面运行一个窗口。在屏幕锁定时,我只需说一下即可获得屏幕保护程序上方的窗口

[window setLevel:NSScreenSaverLevel]

但是,它仍然不会覆盖登录屏幕。

我觉得这根本不可能,但我在 Knock to Unlock 应用上看到了类似的东西。

【问题讨论】:

  • 你找到解决方案了吗,brdu?
  • @MorganR .. 是的 .. 有点。使用 NSScreenSaverLevel 不足以显示在锁定屏幕上。例如,NSScreenSaverLevel+10 就可以了。用户 ndominati2 发布了一个更好的解决方案 :)

标签: objective-c macos sfauthorizationpluginview


【解决方案1】:

您是否尝试使用以下行?

[window setLevel:CGShieldingWindowLevel()+1];

我用它来做与 KnockToUnlock 相同的事情,它就像一个魅力。如果我从睡眠模式或屏幕保护程序进入登录屏幕,我会在登录屏幕上方看到我的窗口。

希望这会有所帮助。

【讨论】:

  • 你这个天才!你怎么知道的?当看到 Knock 的工作原理时,我印象深刻。并花大量时间寻找答案!
  • 太棒了。我使用的是 NSScreenSaverLevel+10,但这更干净。谢谢!