dönmek UITextFieldsoru başlığın açıklaması vardır anahtar sonraki hata
İşte InputViewController kod parçası:
class InputViewController: UIViewController, UITextFieldDelegate {
private var firstResponderTag = 0
...
func textFieldDidBeginEditing(textField: UITextField) {
firstResponderTag = textField.tag
}
func textFieldShouldReturn(textField: UITextField) -> Bool {
if let nextResponder = textField.superview?.viewWithTag(textField.tag + 1) {
nextResponder.becomeFirstResponder()
} else {
textField.resignFirstResponder()
}
return true
}
...
}
Ve SigningInViewController:
class SigningInViewController: InputViewController {
...
@IBOutlet
private weak var emailTextField: TextField! {
didSet {
emailTextField.validator = EmailValidator()
}
}
@IBOutlet
private weak var passwordTextField: TextField! {
didSet {
passwordTextField.validator = PasswordValidator()
}
}
override func viewDidLoad() {
super.viewDidLoad()
Observable.combineLatest(emailTextField.rx_text, passwordTextField.rx_text, resultSelector: {
(email: String, password: String) in
email.length > 0 && password.length > 0
}).bindTo(signInButton.rx_enabled).addDisposableTo(bag)
}
...
}
sorun olduğunu ben Enter tuşuna basarsanız Next
, bir sonraki metin alanı ilk yanıtlayıcı olur ve hemen ilk yanıtlayıcıyı sonlandırır. Ama eğer bağlayıcı dönüş anahtarını kaldırırsam gerektiği gibi çalışır. Peki, ne yanlış yapıyorum?
UPD:
Ben RxSwift resmi repo benzer bir soru cevapsız ettik. çözüm senin kodunda hatasının nedenini bulamıyorum, ama ben sadece son zamanlarda yazdığım bir kod örneğini paylaşabilir
if let nextResponder = textField.superview?.viewWithTag(textField.tag + 1) {
dispatch_async(dispath_get_main_queue(), {
nextResponder.becomeFirstResponder()
})
} else {
kullanmanın çalışıyor? – mohamede1945
@ mohamede1945, evet, onu buldum. Bunu UPD bölümünde görebilirsiniz) –