Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios UITextField clearButton显示时调整textfield的插入_Ios_Swift_Uitextfield - Fatal编程技术网

Ios UITextField clearButton显示时调整textfield的插入

Ios UITextField clearButton显示时调整textfield的插入,ios,swift,uitextfield,Ios,Swift,Uitextfield,我有一个中心对齐的UITextField。我想在编辑时显示“清除”按钮,因此我使用: textfield.clearButtomMode = .whileEditing 问题是,当“清除”按钮出现时,它会将文本字段中的其余内容向左移动,这对正在键入的人来说非常不和谐 下面是一个例子: 有什么线索可以让它不这样做,或者让文本字段成为第一响应者时出现clear按钮吗?您可以覆盖clearButtonRect(forBounds:)调用超级实现,然后存储clear按钮的大小。然后,您可以使用它来更

我有一个中心对齐的UITextField。我想在编辑时显示“清除”按钮,因此我使用:

textfield.clearButtomMode = .whileEditing
问题是,当“清除”按钮出现时,它会将文本字段中的其余内容向左移动,这对正在键入的人来说非常不和谐

下面是一个例子:


有什么线索可以让它不这样做,或者让文本字段成为第一响应者时出现clear按钮吗?

您可以覆盖clearButtonRect(forBounds:)调用超级实现,然后存储clear按钮的大小。然后,您可以使用它来更新
editingRect(forBounds:CGRect)
中文本字段的插入。假设按钮的宽度为10,因此如果在左右两侧添加10个点插入,文本将保持居中,并且不会与按钮重叠。唯一的缺点是,由于该侧的插入,文本将无法一直延伸到字段的左边缘


您可以尝试将文本字段的宽度增加“清除”按钮的宽度,以抵消文本的位移。或者只需将clearButtonMode设置为。始终创建自己的clear按钮,然后将其添加到
DidBeginediting
上的文本字段,这完全没有那么难,但请注意,向左移动是为了防止文本与该按钮重叠,这是正常的