ios - 退出 viewController 时停止调用 textFieldDidEndEditing

标签 ios objective-c

我有一个 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/

相关文章:

ios - 使用用户权限 IOS 从收件箱读取/解析 SMS

ios - 从历史记录中检索消息时获取重复消息

ios - 从 tableView :cellForRowAtIndexPath: 内的 block 调用时,cellForRowAtIndexPath 始终为零

objective-c - 开源贷款摊销时间表

ios - 如何解决此 CollectionView 崩溃?

ios - AVCaptureVideoDataOutput P3 色彩空间

android - Flutter 找不到预装的 Android SDK

objective-c - 从 Swift 隐藏 Objective-C 初始化器(或方法)

iphone - 如何计算 UITextView 显示的字符数?

ios - Star micronics mpop iOS SDK - 使用空白代码页保存和打印字符