objective-c – SecurityAgentPlugin在Yosemite上不再工作(SFAut
我们开发了一个授权插件,它使用SFAuthorizationPluginView向用户呈现UI.此示例基于Apple提供的“旧”
NameAndPassword example.
我们使用此授权插件来解锁会话(我们已使用自定义视图更新了authorizationdb中的“system.login.screensaver”授权).这在Yosemite的最后一次更新之前一直运作良好.自Yosemite以来,SFAuthorizationPluginView在用户登录会话后不再关闭.我们可以通过执行以下操作来更新示例以强制关闭窗口: // confirm that we have authorized the user [self callbacks]->SetResult ([self engineRef],kAuthorizationResultAllow); // close the window NSView* v = [self viewForType:SFViewTypeCredentials]; NSWindow* w = [v window]; [w close]; 现在,一旦用户登录(在我们授权用户之后),SFAuthorizationPluginView就会关闭,但是后台仍有一些活动,用户在会话中没有焦点(用户无法选择内容或写入文本编辑内容)例).我们必须手动终止SecurityAgent以便再次获得焦点. (请注意,系统似乎会在30秒后自动终止SecurityAgent). 我们在下一页找到了Apple的NameAndPassword auth插件示例的固定2014版本,但我们在Yosemite上面临同样的问题: 在Yosemite发布之前,这段代码对我们来说很好. 有人尝试过类似的问题吗?有任何想法或建议来解决这个问题吗? 解决方法
您应该覆盖didDeactivate方法并添加调用,而不是靠近窗口:
[self didDeactivate]; 在您将结果设置为ALLOW之后的SFAuthorizationPluginView类中. Apple更新了他们的文档,你可以重新阅读它,有一些很好的指导方针可以节省我一年前的大量时间和精力. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |