UITextField 的宽度永远不会小于占位符文本的宽度

UITextField's width is never less than it's width with placeholder text

我有一个 UITextFieldUILabel 坐在一起 UIView 是这样的:

这里是 Xcode:

在用户在文本字段中输入一些文本之前,标签是隐藏的,因此它用于为数字输入提供持久的 "suffix"。问题是,当用户在文本字段中键入一个数字时,它不会缩小到文本的大小,它仍然保持原始占位符的大小,即使它不可见,如下所示:

有什么方法可以将文本字段的宽度限制为容纳用户文本的最小尺寸,而不注意不可见的占位符文本的宽度?

谢谢

我自己解决了:

每当编辑文本时,都会检查文本字段以查看其中是否有任何文本。如果没有文本,则隐藏 'mg' 后缀,并添加占位符。如果有文本,则显示 'mg' 后缀 并删除占位符。 像这样:(Swift)

func textFieldTextChanged(_ textField: UITextField) {

    milligramTextField.invalidateIntrinsicContentSize()

    view.layoutIfNeeded()

    if textField.text == "" {
        milligramSuffixLabel.text = ""
        milligramTextField.placeholder = "0 mg"
    } else {
        milligramSuffixLabel.text = " mg"
        milligramTextField.placeholder = ""
    }
}