【问题标题】:Application freezes after editing custom UITextField编辑自定义 UITextField 后应用程序冻结
【发布时间】:2013-02-11 15:40:04
【问题描述】:

我有一个自定义 UITextField 用于验证非空输入、正确的电子邮件、大于 x 个字符的密码等。

UITextField 有一个自身的委托,因为我对文本字段对象本身进行了所有验证。不知道是不是这个问题。

此自定义UITextField 是在 .XIB 文件中创建的。

在编辑文本字段本身时,文本字段有时会锁定应用程序。当我按下键盘上的“下一步”按钮时,它通常也会锁定(用于转到下一个需要填写的文本字段)。

Xcode 不会返回错误(例如我假设的循环错误),应用程序只是锁定。这不会一直发生,但通常情况下,如果我用文本对其进行压力测试,然后按“下一步”,它可能会被锁定。

应用程序不会崩溃...它不会返回主屏幕,但它实际上只是锁定并保持无响应。

有什么想法吗?如果您需要更多信息来解决这个问题,请告诉我。我现在很茫然。


编辑: 已解决,显然将 UITextField 的委托设置为自身不是一个好主意。我最终做的是创建一个单独的类,专门处理作为UITextField 的委托并执行该类中的所有逻辑。该类还有一个属性连接到它作为委托的文本字段。

【问题讨论】:

  • 我认为您正在阻塞主线程并且应用程序 UI 变得无响应。验证完成的邮政编码
  • 这将回答您的问题:stackoverflow.com/questions/1747777/…
  • @trojanfoe - 谢谢。我会试试看。为什么这个特殊问题只出现在 iPhone 5/iOS 6.0 上,而不会出现在 iPhone 4/iOS 6.0 上?
  • 不,相同版本的 iOS 应该在任何平台上表现相同。
  • @trojanfoe - 好的。我将首先尝试将该代表分开。对我来说,它只在 iPhone 5 上测试时锁定。iPhone 4 工作正常。

标签: ios objective-c uitextfield


【解决方案1】:

我也将答案写在这里:

显然,将 UITextField 的委托设置为自身并不是一个好主意,因为它最终可能会进入循环。

我最终做的是创建一个单独的类,专门处理作为 UITextField 的委托并执行该类中的所有逻辑。该类还有一个属性连接到它作为委托的文本字段。

【讨论】:

    猜你喜欢
    • 2020-02-09
    • 1970-01-01
    • 2015-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-10
    • 1970-01-01
    相关资源
    最近更新 更多