iOS:响应者辞职时,文本从子类 UITextfield 中消失

Posted

技术标签:

【中文标题】iOS:响应者辞职时,文本从子类 UITextfield 中消失【英文标题】:iOS: Text disappearing from subclassed UITextfield when responder resigns 【发布时间】:2017-02-10 13:56:06 【问题描述】:

我遇到的问题是我输入到 UITextField 中的文本在它被辞去第一响应者时消失。当您再次点击文本字段时,文本会重新出现。 UITextField 子类除了稍微圆角之外什么都没有。我将在以后添加更多内容。有没有人遇到过这样的问题?

这是我的代码。就像我说的,除了圆角之外,这个子类中没有任何东西。稍后我将添加代码以向文本字段添加填充。

代码

import UIKit

class EVTextField: UITextField

  override func layoutSubviews()
  
    layer.cornerRadius = 2.0
  

逐步复制指南

    点击 UITextField。 输入文字。 关闭键盘或点击下一个 UITextField。 以前退出的 UItextField 中的文本似乎消失了。

视频示例

【问题讨论】:

我可以看到文本保留在那里,但可能是它的文本颜色在对 uitextfield 进行了编辑后? @Aragunz 不,颜色仍然是黑色,我在调试视图层次结构时检查过 显示文本域委托代码?大家可以看懂 在上图中,当你切换文本字段时,它看起来像 TEst 和 yyyy 吗? @Aragunz 是的,当我切换回文本字段时,文本会重新出现,这很好。但是当我辞去该文本字段的响应者时它消失了 【参考方案1】:

发现问题了,在我的 UITextFields 转角时我忘记打电话给super.layoutSubviews()。愚蠢的错误。

【讨论】:

【参考方案2】:

请试试这个:

if (self.emailTextField.isFirstResponder) 
    [self.emailTextField resignFirstResponder];


if (self.passwordTextField.isFirstResponder) 
    [self.passwordTextField resignFirstResponder];

【讨论】:

在 texfield 上确实开始编辑或类似的东西,包含字段的类上的代表。

以上是关于iOS:响应者辞职时,文本从子类 UITextfield 中消失的主要内容,如果未能解决你的问题,请参考以下文章

UITextField,辞职第一响应者时,导致文本的奇怪动画滚动

UITextField 辞职第一响应者 iOS4

从单独的班级辞职第一响应者

使用 UINavigationController 时在 didSelectRowAtIndexPath 中辞职第一响应者

辞职第一响应者 UITextfield

iPad没有辞职响应者