Ich bin ein nativer Touch-ID Warnung Code zu erstellen:becomeFirstResponder manchmal öffnet nicht die Tastatur auf ios 10
let context = LAContext()
guard deviceCanUseTouchId(context: context) else {
return
}
presentingAlert = true
[context.evaluatePolicy(LAPolicy.DeviceOwnerAuthenticationWithBiometrics, localizedReason: "touch_id_auth_message".localized(), reply: { [unowned self] success, error -> Void in
self.presentingAlert = false
self.canPresentAlert = true
dispatch_async(dispatch_get_main_queue()) {
completionHandler?(success)
}
})]
Button Handler, der die native Touch-ID Alarm wie folgt aussieht ruft:
@IBAction func touchUpInsideUseTouchIdButton(sender: AnyObject) {
ACTouchId.sharedManager.authenticateWithTouchId(completionHandler: { [weak self] in
self?.handleTouchIdAuthentication(granted: $0)
})
view.endEditing(true)
}
und dies ist der Code von handleTouchIdAuthentication:
private func handleTouchIdAuthentication(granted granted: Bool) {
if granted {
//...
} else {
passcodeDigitTextField1.becomeFirstResponder()
}
}
das Problem ist, dass die meisten Wenn ich den nativen Berührungsbildschirm-ID-Dialog abbricht, wird die Warnmeldung korrekt beendet und die Funktion "firstResponder()" funktioniert ordnungsgemäß.
Allerdings gibt turnFirstResponder() bei etwa 1 in 10 Fällen den Wert true zurück, passcodeDigitTextField1 erhält den Fokus, aber die Tastatur wird nicht angezeigt. Darüber hinaus wird die Tastatur nicht angezeigt, selbst wenn ich den Fokus auf ein anderes Textfeld ändere, indem ich auf sie tippe.
Strangly, funktioniert das gut für iOS 9 und 8. Das Problem tritt nur auf iOS 10.
Kannst du das Stück im Hauptfaden tun? –
Verwenden Sie einen Simulator oder ein tatsächliches Gerät? –
Ich benutze das aktuelle Gerät mit iOS 10.0.2. – Dzior