UITextField 在编辑时剪切文本

Posted

技术标签:

【中文标题】UITextField 在编辑时剪切文本【英文标题】:UITextField cuts the text while editing 【发布时间】:2016-08-09 09:55:59 【问题描述】:

我想请你帮忙解决这个问题。 我得到了 UITextField,它只能占用 2 个字符。当应用程序启动时,会有一个带有 YY 字符的占位符。当用户开始编辑并插入数字时,一切都很好。编辑文本字段后,第一个数字被剪切,看起来像向左移动,但是当我删除两个数字并再次写入它们时,即使经过反复编辑,一切正常。

我尝试了很多选项,甚至日志显示,文本字段的边界宽度:20.000000 高于文本宽度的大小:17.979492

这里是计算文本大小的代码

-(CGFloat)lengthOfTextField:(NSString *)textField

    CGSize textSize = [textField sizeWithAttributes:@NSFontAttributeName:[UIFont systemFontOfSize:17.0f]];
    CGFloat width = textSize.width;

    return width;

这是设置文本框框架的代码

-(void)setYearPosition

    if(self.yearField.text.length >= 2)
    self.yearField.frame = CGRectMake(self.yearField.frame.origin.x,
                                      self.yearField.frame.origin.y,
                                      [self lengthOfTextField:self.yearField.text] + 10,
                                      self.yearField.frame.size.height);

    

感谢您的帮助。

【问题讨论】:

【参考方案1】:

在您的 ViewDidLoad 方法中尝试此代码

[self.view layoutIfNeeded];

希望这会有所帮助。

【讨论】:

以上是关于UITextField 在编辑时剪切文本的主要内容,如果未能解决你的问题,请参考以下文章

UITextfield 在编辑模式下从顶部被剪切

编辑开始时更改 UITextField 背景

如何永久地显示从UITextField输入的数据到标签?

键盘出现时如何滚动 UIScrollView?

编辑时如何更改 UITextField

在uitextfield中编辑文本时如何调用函数