我有一个中心对齐的UITextField。我想在编辑时显示清除按钮,所以我使用:
textfield.clearButtomMode = .whileEditing
问题在于,当清除按钮出现时,它会将textField中的其余内容移动到左侧,这对于正在打字的人来说非常不和谐。
以下是插图:
任何线索如何使它不这样做,或者当textField成为第一响应者时出现清除按钮?
答案 0 :(得分:1)
您可以覆盖clearButtonRect(forBounds:)
以调用超级实现,然后存储清除按钮的大小。然后,您可以使用它来更新editingRect(forBounds bounds: CGRect)
中文本字段的插入内容。假设按钮的宽度为10,因此如果向左侧和右侧添加10个点插入,文本将保持居中,并且不会与按钮重叠。唯一的缺点是文本将无法一直延伸到字段的左边缘,因为那边有插图。
https://developer.apple.com/reference/uikit/uitextfield/1619600-clearbuttonrect https://developer.apple.com/reference/uikit/uitextfield/1619589-editingrect