目前,我在swift文本字段的editingDidEnd方法中遇到问题。我在editingDidEnd函数中有一个模块,用于检查B ViewController中的一些验证。如果验证错误,则会显示弹出窗口/警报。
在这种情况下,当用户正在键入并仍将焦点放在textField上时,用户在导航栏上向后点击。这使得editingDidEnd函数也被调用。因此,页面显示ViewController并显示弹出窗口。
是否有解决此问题的变通方案?我不希望在导航栏中向后点击时显示警报。我的期望是如果用户在导航上向后按,则不会调用editingDidEnd函数
谢谢之前
例如:
B视图控制器
extension bviewcontroller: textfielddelegate {
func editingDidEnd(_ value: String, textField: SearchTextField) {
//showingalert
}
}
1条答案
按热度按时间lhcgjxsq1#
您可以向
editingDidEnd
方法添加guard
语句,如下所示。我已经用一个包含
UITextField
的简单视图控制器测试了上面的代码。然而,你的委托方法看起来和标准的UITextFieldDelegate
'的textFieldDidEndEditing(_:)
方法有些不同。否则我会建议你也尝试一下textFieldDidEndEditing(_:reason:)
方法。