UITextField在编辑时剪切文本

时间:2016-08-09 09:56:00

标签: ios objective-c xcode cocoa uitextfield

我想请你帮忙解决这个问题。 我得到了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 个答案:

答案 0 :(得分:-1)

在ViewDidLoad方法中尝试此代码

[self.view layoutIfNeeded];

希望这有帮助。