开始编辑时带有“清除”按钮大小的 UITextField

UITextField with "clear' button size on begin editing

我有一个带有清除按钮的 UITextField,我将它放在一个垂直的 Stack View 中,前导对齐。当编辑开始时,该字段的大小不考虑清除按钮,因此文本向左滚动。一旦添加了任何字符,该字段就会更正其大小。我不想固定字段宽度,因为我喜欢这种行为 — 当文本末尾始终有清除按钮时。

下面的函数修正了大小,但是清除按钮只有在文本字段改变后才会出现:

func textFieldDidBeginEditing(_ textField: UITextField) {

    UIView.animate(withDuration: 0.4) {
        textField.sizeToFit()
    }
}

知道如何纠正这个问题吗?提前谢谢你。

func textFieldDidBeginEditing(_ textField: UITextField) {
    textField.invalidateIntrinsicContentSize()
}