首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SFAuthorizationView authorize:方法不工作

SFAuthorizationView authorize:方法不工作
EN

Stack Overflow用户
提问于 2009-06-12 19:58:22
回答 2查看 747关注 0票数 1

我已经在我的应用程序中使用了一个SFAuthoizationView,并且我试图从我的代码中调用authorize方法,以提示用户在当前未授权的情况下进行授权。

我的问题是这个方法似乎不起作用!

我的代码如下所示,其中authViewSFAuthorizationView,authorizeMe是在单击按钮时调用的方法(并且确实显示了日志消息,所以我知道它正在被调用)。

如果锁被锁定,则authorize消息只返回false,并且似乎不会提示用户输入密码。

有人知道这是怎么回事吗?

代码语言:javascript
复制
- (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;
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-12-01 07:52:43

我也有同样的问题,我注意到了一些事情。

为了使SFAuthorizationView authorize方法与用户交互,您必须在初始化SFAuthorizationView时设置这两个标志:

代码语言:javascript
复制
AuthorizationFlags flags = kAuthorizationFlagInteractionAllowed | kAuthorizationFlagExtendRights;
[m_authView setFlags:flags];

然而,我不认为SFAuthorizationView是被设计成这样使用的。

设置这些标志后,调用m_authView updateStatus:m_authView;将提示用户输入管理员凭据,如果设置了m_authView,则自动更新:是;将随机提示用户输入密码,并且当用户单击cancel时,提示不会消失!

我相信SFAuthorizationView authorize方法故意抑制用户交互。

似乎您可以调用另一个方法来代替authorize:(无效)buttonPressed:(Id)sender。此方法没有文档记录,它将生成编译警告,但它在10.6上确实有效。

票数 1
EN

Stack Overflow用户

发布于 2009-06-12 20:18:21

我猜@"Test String"不是您在系统中注册的授权权限的名称。授权视图需要知道您所请求的权限。This document提供了关于如何做到这一点的概述。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/988747

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档