加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

objective-c – SecurityAgentPlugin在Yosemite上不再工作(SFAut

发布时间:2020-12-16 07:10:11 所属栏目:百科 来源:网络整理
导读:我们开发了一个授权插件,它使用SFAuthorizationPluginView向用户呈现UI.此示例基于Apple提供的“旧” NameAndPassword example. 我们使用此授权插件来解锁会话(我们已使用自定义视图更新了authorizationdb中的“system.login.screensaver”授权).这在Yosemit
我们开发了一个授权插件,它使用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上面临同样的问题:
A fixed 2014 version of Apple’s NameAndPassword auth plugin sample

在Yosemite发布之前,这段代码对我们来说很好.

有人尝试过类似的问题吗?有任何想法或建议来解决这个问题吗?

解决方法

您应该覆盖didDeactivate方法并添加调用,而不是靠近窗口:

[self didDeactivate];

在您将结果设置为ALLOW之后的SFAuthorizationPluginView类中.

Apple更新了他们的文档,你可以重新阅读它,有一些很好的指导方针可以节省我一年前的大量时间和精力.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读