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

问题描述 投票:1回答:2

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

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

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

ios swift swift2 uitextfield
2个回答
1
投票

我有可能禁用这种转换

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


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

© www.soinside.com 2019 - 2024. All rights reserved.