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

vfhzx4xs  于 2022-11-06  发布在  Swift
关注(0)|答案(2)|浏览(167)

我的项目中有一个UITextField,在编辑过程中启用了清除按钮。
框内任何居中的文本都将向左移动,以便为焦点上的清除按钮腾出空间。我是否可以禁用这种移动。我觉得它会分散注意力。
请看下面的截图:第一次

pvabu6sv

pvabu6sv1#

我能不能把这个变速器
如果您将UITextField作为子类,那么文本的绘制实际上取决于您:您可以覆盖drawText(in:)和/或textRect(forBounds:)并控制文本的位置。

pgccezyw

pgccezyw2#

为了解决这个问题,我对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

相关问题