Swift - 出现清除按钮时禁用文本移位

时间:2016-09-10 22:49:40

标签: ios swift swift2 uitextfield

我的项目中有一个UITextField,在编辑过程中启用了清除按钮。

框内的任何居中文字都会向左移动,为焦点上的清除按钮腾出空间。我有可能禁用这种转换。我觉得它让人分心。

请参阅下面的屏幕截图: enter image description here enter image description here

2 个答案:

答案 0 :(得分:1)

  

我可以禁用此转移

小心,是的,你当然可以做到。如果你是UITextField的子类,那么文本的绘制实际上取决于你:你可以覆盖drawText(in:)和/或textRect(forBounds:)并负责文本的去向。

答案 1 :(得分:1)

要解决问题,我将UITextField子类化,并将以下内容添加到子类中:

class CustomTextField: UITextField {
    override func editingRectForBounds(bounds: CGRect) -> CGRect {
        let padding = UIEdgeInsets(top: 0, left: 5, bottom: 0, right: 5)
        return UIEdgeInsetsInsetRect(bounds, padding)
    }
}

Swift 4.2& Xcode 10

class CustomTextField: UITextField {
    override func editingRect(forBounds bounds: CGRect) -> CGRect {
        let padding = UIEdgeInsets(top: 0, left: 5, bottom: 0, right: 5)
        return bounds.inset(by: padding)
    }
}

在此处找到答案:Create space at the beginning of a UITextField