Cocoa SFAuthorizationView授权:方法无效
我在我的应用程序中使用了一个SFAuthorizationView,我试图从代码中调用authorize方法,以提示用户在当前未授权的情况下进行授权 我的问题是,这种方法似乎不起作用 我的代码如下所示,其中Cocoa SFAuthorizationView授权:方法无效,cocoa,Cocoa,我在我的应用程序中使用了一个SFAuthorizationView,我试图从代码中调用authorize方法,以提示用户在当前未授权的情况下进行授权 我的问题是,这种方法似乎不起作用 我的代码如下所示,其中authView是SFAuthorizationView,authorizationme是在单击按钮时被调用的方法(日志消息确实显示,因此我知道它正在被调用) 如果锁被锁定,authorize消息将返回false,并且似乎不会提示用户输入密码 有人知道这是怎么回事吗 - (void) main
authView
是SFAuthorizationView
,authorizationme是在单击按钮时被调用的方法(日志消息确实显示,因此我知道它正在被调用)
如果锁被锁定,authorize消息将返回false,并且似乎不会提示用户输入密码
有人知道这是怎么回事吗
- (void) mainViewDidLoad {
[authView setDelegate:self];
[authView setString:"Test String"];
[authView setAutoupdate:YES];
}
- (IBAction)authorizeMe:(id)sender {
NSLog(@"Authorizing...");
[authView authorize:authView];
}
- (void)authorizationViewDidAuthorize:(SFAuthorizationView *)view {
self.enabled = YES;
}
- (void)authorizationViewDidDeauthorize:(SFAuthorizationView *)view {
self.enabled = NO;
}
我猜
@“测试字符串”
不是您在系统中注册的授权权限的名称。授权视图需要知道您请求的是什么权利。提供了有关如何执行此操作的概述。我也遇到了同样的问题,我注意到了一些问题
为了使SFAuthorizationView授权方法与用户交互,必须在初始化SFAuthorizationView时设置这两个标志:
AuthorizationFlags flags = kAuthorizationFlagInteractionAllowed | kAuthorizationFlagExtendRights;
[m_authView setFlags:flags];
但是,我不认为SFAuthorizationView设计成这样使用
设置这些标志后,调用[m_authView updateStatus:m_authView];导致提示用户输入管理员凭据,如果您设置[m_authView setAutoupdate:YES];将随机提示用户输入密码,当用户单击“取消”时,提示不会消失
我相信SFAuthorizationView authorization方法会故意抑制用户交互
似乎您可以调用另一个方法来代替authorize:(void)按钮pressed:(id)sender。此方法没有文档记录,它将生成编译警告,但在10.6上确实有效。但是为什么手动单击锁定图标并授权解锁窗格而不是通过代码授权?需要注意的一点是,如果您只需要检查用户是否已获授权(而不是实际解锁锁),它会起作用您可以使用
授权版权([[authorizationView authorization]authorizationRef]、[authorizationView authorizationRights]、KAAuthorizationEmptyEnvironment、KAAuthorizationFlagDefaults | KAAuthorizationFlagExtenderRights | KAAuthorizationFlagInteractionalLowed,NULL)
在需要时提示用户。