我现在使用的是修补版的名称和密码:https://github.com/skycocker/NameAndPassword
当在登录窗口外使用此功能时(例如system.login.screensaver或我自己的测试权限),仅使用名称和密码插件时,按“确定”或“取消”后,窗口将挂起约10秒。
添加一些日志,我看到mechanismdestroy在插件上被调用,nameandpassword被释放,但它永远无法在nameandpassword中释放。我也没看到plugindestroy被打电话。在调用mechanismdestroy之后,securityagent将再挂起10秒。
我看到了相关的帖子:SecurityAgentPlugin not working anymore on Yosemite (SFAuthorizationPluginView)
但遵循接受的答案是行不通的,根据授权插件的引用,不需要调用diddactivate(不需要调用requestinterrupt和mechanismdactivate)。调用setResult就足够了。
我可以从视野中取下窗户,强行关闭,但必须有办法让它按预期工作。

最佳答案

我发现了不同的黑客-我得到了auth机制实例的引用计数,并发布了除最后一个以外的所有实例。在setResult调用之后执行此操作。
这就解决了问题。它不应该是那样的-但苹果公司没有给我们太多的选择。

08-06 13:33