gpt4 book ai didi

objective-c - SecurityAgentPlugin 在 Yosemite 上不再工作(SFAuthorizationPluginView)

转载 作者:太空狗 更新时间:2023-10-30 03:54:41 34 4
gpt4 key购买 nike

我们开发了一个授权插件,它使用 SFAuthorizationPluginView 向用户呈现 UI。此示例基于“旧”NameAndPassword example由 Apple 提供。

我们正在使用此授权插件使用自定义 View 解锁 session (我们已更新 authorizationdb 中的“system.login.screensaver”授权)。这在优胜美地的最后一次更新之前一直有效。自 Yosemite 以来,SFAuthorizationPluginView 在用户登录 session 后不再关闭。我们可以更新示例以强制关闭窗口,方法是:

// 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 就很好地关闭了,但是某些东西在后台仍然处于事件状态并且用户在 session 中没有焦点(用户无法选择某些东西或在例如文本编辑)。我们必须手动杀死 SecurityAgent 才能再次获得焦点。 (请注意,系统似乎会在 30 秒后自动杀死 SecurityAgent)。

我们在以下页面找到了 Apple 的 NameAndPassword 授权插件示例的固定 2014 版本,但我们在 Yosemite 上面临同样的问题: A fixed 2014 version of Apple's NameAndPassword auth plugin sample

在 Yosemite 发布之前,这段代码对我们来说工作正常。

有人在尝试类似的问题吗?有解决此问题的想法或建议吗?

最佳答案

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

[self didDeactivate];

在将结果设置为允许后,在 SFAuthorizationPluginView 类中。

Apple 更新了他们的文档,您可以重新阅读它,其中有一些很好的指南可以在一年前为我节省大量时间和精力。

关于objective-c - SecurityAgentPlugin 在 Yosemite 上不再工作(SFAuthorizationPluginView),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26543149/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com