【发布时间】:2014-04-08 17:34:50
【问题描述】:
当键盘不在屏幕上时,我以编程方式将文本附加到UITextField(因此该字段中没有输入指示器)。一旦文本填满该字段,它将继续添加文本,但不会滚动到末尾以显示添加的最后一个字符。相反,它会截断文本并在末尾添加一个省略号 (...)。
如何确保以编程方式添加的最后一个字符可见?
当文本字段更宽时,该解决方案需要在横向(和 iPad)中工作,并且用户还需要能够通过屏幕键盘在此字段中输入文本。 [请注意,当键盘打开时它会自动滚动到末尾(文本字段为firstResponder)并且我以编程方式附加一个字符。]
请注意,这个问题之前已经被问过(因此这个问题被标记为重复的原因)但给定的解决方案将不起作用,因为 sizeWithFont:constrainedToSize:lineBreakMode: 已被弃用。即使我使用它,占位符文本在通过清除 (X) 按钮清除字段后也会右对齐。它也不起作用,因为幻数是硬编码的,因此它不适用于不同大小的文本字段。
Ashley 提供的答案很好,但也不起作用(对我而言),因为用户还需要能够通过系统键盘在字段中输入文本。
这是我附加字符的简单代码行:
self.textField.text = [self.textField.text stringByAppendingString:character];
当文本太长而无法放入可见字段时,会出现以下情况:
我想知道UITextView 是否更适合使用,但我想我会遇到同样的情况 - 当它不适合时需要滚动到底部。
感谢您帮助解决这个问题,我相信那些偶然发现这个问题的人也会。
【问题讨论】:
-
为什么不只显示文本的结尾?
-
这正是我需要做的。但是怎么做呢?
标签: ios objective-c uitextfield truncate ellipse