如何从 Touch ID 警报视图中删除输入密码和取消按钮

Posted

技术标签:

【中文标题】如何从 Touch ID 警报视图中删除输入密码和取消按钮【英文标题】:How to remove Enter Password and Cancel button from Touch ID alert view 【发布时间】:2015-01-23 05:27:16 【问题描述】:

我被卡住了,不想在拇指印象警报中输入密码

[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 怎么办。 如果用户没有设置 Touch ID,则不会出现时间提醒。 【参考方案1】:

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

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

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

// show the authentication UI
//...

关于“取消”按钮,我认为无法移除。

希望对您有所帮助。

【讨论】:

我也做了同样的事情......但我仍在尝试取消按钮。【参考方案2】:

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

如果它设置为空字符串,那么按钮将被隐藏。

下面是我用过的代码:

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

【讨论】:

【参考方案3】:

查看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 = @"" -- empty string;。让我们尝试一下,如果有效,请接受答案。

【讨论】:

【参考方案4】:

您应该使用像 "" 这样的空字符串作为本地化FallbackTitle 示例:

let context:LAContext = LAContext()
context.localizedFallbackTitle = ""

【讨论】:

请添加更多详细信息以扩展您的答案,例如工作代码或文档引用。【参考方案5】:

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

[context setCancelButtonVisible:false];

【讨论】:

为什么要添加违反 HIG 的选项(在提供可接受的、Apple 指定/批准的选项后)?【参考方案6】:

看起来 Apple 添加了一种方法来自定义 ios 10 中的取消按钮标题,

localizedCancelTitle

The localized title for the fallback button in the dialog presented to the user during authentication.

Discussion

This string should be provided in the user’s current language and should be short and clear.

https://developer.apple.com/documentation/localauthentication/lacontext/1643658-localizedcanceltitle

【讨论】:

【参考方案7】:

您可以根据需要更改取消按钮的标题

[context setLocalizedCancelTitle:@"ABC"];

【讨论】:

以上是关于如何从 Touch ID 警报视图中删除输入密码和取消按钮的主要内容,如果未能解决你的问题,请参考以下文章

依次显示两个相同的警报视图。如何区分来自警报 1 和警报 2 的文本?

UIAlertView 输入 Apple ID 和密码 IAP

如何在警报视图中提示用户输入文本

无法从警报对话框中的 EditText 视图中获取数据

如何在我的视图控制器中向我的“全部删除”和“保存”按钮添加警报?

如何从集合视图中删除项目?