如何从Touch ID提示框中移除输入密码和取消按钮

27

我遇到了一个问题,就是在指纹验证弹窗中无法输入密码。

[context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:NSLocalizedString(@"UNLOCK_ACCESS_TO_LOCKED_FEATURE", nil) reply:
         ^(BOOL success, NSError *authenticationError)
         {
             if (success)
             {

                 msg =[NSString stringWithFormat:NSLocalizedString(@"EVALUATE_POLICY_SUCCESS", nil)];
             }
             else
             {
                 msg = [NSString stringWithFormat:NSLocalizedString(@"EVALUATE_POLICY_WITH_ERROR", nil), authenticationError.localizedDescription];
             }
         }];
     }

你应该真的留下那个选项。如果用户没有设置Touch ID,怎么办? - soulshined
1
如果用户没有设置Touch ID,那么警报将不会出现。 - Rahul Gupta
7个回答

71

如果需要隐藏“输入密码”按钮,您需要将 localizedFallbackTitle 设置为空字符串。

//...
LAContext *context = [[LAContext alloc] init];

// Hide "Enter Password" button
context.localizedFallbackTitle = @"";

// show the authentication UI
//...

关于“取消”按钮,我认为不可能将其删除。

希望这对您有所帮助。


我也做了同样的事情,它起作用了...但我仍在尝试取消按钮。 - Rahul Gupta

15

LAContext类中有localizedFallbackTitle属性。如果您想要自定义文本而不是“输入密码”,那么您可以在此处设置。

如果将其设置为空字符串,则按钮将被隐藏。

Screenshot 1

以下是我使用的代码:

 //MARK: - scanFingerPrint
    func scanFingerPrint() {
        let authContext:LAContext = LAContext()
        authContext.localizedFallbackTitle = ""
    . . .
    }

Screenshot 2


4

看一下LAContext.h,我发现了这个:

/// Fallback button title.
/// @discussion Allows fallback button title customization. A default title "Enter Password" is used when
///             this property is left nil. If set to empty string, the button will be hidden.
@property (nonatomic, copy) NSString *localizedFallbackTitle;

你应该设置localizedFallbackTitle = @"" -- 空字符串;。让我们尝试一下,如果它起作用,请接受答案。


1
你应该使用空字符串 "" 作为 localizedFallbackTitle 的值
示例:
let context:LAContext = LAContext()
context.localizedFallbackTitle = ""

请添加更多细节以扩展您的答案,例如工作代码或文档引用。 - Community

0

0

您可以移除“取消”按钮,但是在这种情况下,您的应用将被拒绝。

[context setCancelButtonVisible:false];

在提供了合乎规范的、经过苹果官方指定/审批的选项之后,为什么要添加违反人机界面指南(HIG)的选项呢? - mbm29414

0

如果您愿意,可以更改取消按钮的标题

[context setLocalizedCancelTitle:@"ABC"];

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接