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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Swift - 出现清除按钮时禁用文本移位相关的知识,希望对你有一定的参考价值。

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

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

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

答案

我有可能禁用这种转换

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

另一答案

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

以上是关于Swift - 出现清除按钮时禁用文本移位的主要内容,如果未能解决你的问题,请参考以下文章

如何禁用 IE10 插入文本框的清除按钮?

当键盘出现Swift时,使用文本字段和按钮向上移动视图

Swift:在 UITextView 中使用占位符文本禁用空白/换行符文本的栏按钮

Swift 4 - 如何使用按钮启用/禁用键盘

如何清除文本输入并在JavaScript中重新聚焦

清除输入元素时启用/禁用按钮