我有一个非常奇怪的问题,当我按下回车键时会发生,并且仅在我第一次按下它时才会发生,每次下一次都按预期运行。
我有一个简单的类来管理键盘,它接受了我拒绝委托给班级的文本字段数组,我也注册了键盘通知:
cordova plugin rm cordova-plugin-file-transfer
这些是我的方法,可以简单地打印出文本以用于首次展示:
WITH t1(dat, isoff, runtot) AS (
SELECT dat, isoff, 0 runtot
FROM tab
WHERE DAT = DATE'2017-12-20'
UNION ALL
SELECT t2.dat, t2.isoff,
case when t2.isoff = 0 then 0 else runtot + t2.isoff end as runtot
FROM tab t2, t1
WHERE t2.dat = t1.dat + 1
)
SELECT dat, isoff, runtot
FROM t1;
DAT ISOFF RUNTOT
------------------- ---------- ----------
20.12.2017 00:00:00 0 0
21.12.2017 00:00:00 0 0
22.12.2017 00:00:00 0 0
23.12.2017 00:00:00 1 1
24.12.2017 00:00:00 1 2
25.12.2017 00:00:00 1 3
26.12.2017 00:00:00 0 0
27.12.2017 00:00:00 0 0
28.12.2017 00:00:00 0 0
29.12.2017 00:00:00 0 0
30.12.2017 00:00:00 1 1
和我的UITextFieldDelegate:
public init(withTextFields textFields: [UITextField]) {
super.init()
guard textFields.count > 0 else { return }
textFields.forEach{ $0.delegate = self }
NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillShow(notification:)), name: UIResponder.keyboardWillShowNotification, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillHide(notification:)), name: UIResponder.keyboardWillHideNotification, object: nil)
}
在我的视图控制器中,我有两个文本字段,它们传递给我的班级。 当我点击第一个时,我会看到:
@objc func keyboardWillShow(notification: NSNotification) {
print("aaaa")
}
@objc func keyboardWillHide(notification: NSNotification) {
print("bbbb")
}
这是我所期望的。当我按下键盘上的回车键时,问题就会出现:
public func textFieldDidBeginEditing(_ textField: UITextField) {
print("111")
}
public func textFieldDidEndEditing(_ textField: UITextField) {
print("222")
}
public func textFieldShouldReturn(_ textField: UITextField) -> Bool {
print("333")
return true
}
但它仅在我第一次按下时记录它,每隔一次它记录一次:
111
aaa
。
当我按下回车键时,键盘已经显示在屏幕上了,为什么它再次调用aaa
333
?我的textFieldShouldReturn为空。
答案 0 :(得分:0)
尝试在resignFirstResponder()
中呼叫view.endEditing(true)
和/或textFieldShouldReturn
。
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
textField.resignFirstResponder()
return true
}
也尝试将UIResponder.keyboardWillHideNotification
更改为UIResponder.keyboardDidHideNotification