我有一个 ViewController,其中有一个用于用户输入的 TextField 和一个导航栏中的退出按钮。
通常,用户将文本输入到 textField 中,输入内容将在 textFieldDidEndEditing
中进行处理。如果在编辑开始之前点击“退出”按钮,则会正确地转到父 ViewController。
但是,如果在文本字段上开始编辑,然后点击“退出”按钮,则仍会调用 textFieldDidEndEditing
,这是我不希望发生的情况。
我尝试使用textFieldDidEndEditing:reason:
,但两种情况下返回的原因都是UITextFieldDidEndEditingReasonComfilled
。似乎 UITextFieldDidEndEditingReasonCancelled
仅在 tvOS 中有效,在 iOS 中无效。
我还能如何检测用户已退出并阻止 textFieldDidEndEditing
运行直至完成?
最佳答案
您无法阻止 textFieldDidEndEditing
被调用。关闭 View Controller 将关闭文本字段。由于不再编辑文本字段,因此将调用委托(delegate)方法。
您可以选择在用户点击“退出”按钮时设置一个标志。然后在 textFieldDidEndEditing
的实现中,您可以检查它是否设置了该标志并采取相应行动。
关于ios - 退出 viewController 时停止调用 textFieldDidEndEditing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54380130/