菜鸟教程小白 发表于 2022-12-13 02:05:52

ios - TextField 的宽度永远不会小于其占位符文本的宽度


                                            <p><p>我有一个 <code>UITextField</code> 和 <code>UILabel</code> 一起坐在 <code>UIView</code> 中:</p>

<p> <a href="/image/efvaO.jpg" rel="noreferrer noopener nofollow"><img src="/image/efvaO.jpg" alt="hand-drawn rendition of the layout"/></a> </p>

<p>它在 Xcode 中:</p>

<p> <a href="/image/tkcwM.png" rel="noreferrer noopener nofollow"><img src="/image/tkcwM.png" alt="screenshot of layout in Xcode"/></a> </p>

<p>在用户在文本字段中输入一些文本之前,标签是隐藏的,因此它可以为数字条目提供持久的“后缀”。问题是,当用户在文本字段中键入数字时,它不会缩小到文本的大小,它保持在原始占位符的大小,即使它不可见,如下所示:</p>

<p> <a href="/image/3qX1k.png" rel="noreferrer noopener nofollow"><img src="/image/3qX1k.png" alt="screenshot of the problem"/></a> </p>

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

<p>谢谢</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>我自己解决了:</p>

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

<pre><code>func textFieldTextChanged(_ textField: UITextField) {

    milligramTextField.invalidateIntrinsicContentSize()

    view.layoutIfNeeded()

    if textField.text == &#34;&#34; {
      milligramSuffixLabel.text = &#34;&#34;
      milligramTextField.placeholder = &#34;0 mg&#34;
    } else {
      milligramSuffixLabel.text = &#34; mg&#34;
      milligramTextField.placeholder = &#34;&#34;
    }
}
</code></pre>

<p> <a href="https://stackoverflow.com/a/41602156/2332691" rel="noreferrer noopener nofollow">This answer was of great help.</a> </p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - TextField 的宽度永远不会小于其占位符文本的宽度,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/45017798/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/45017798/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - TextField 的宽度永远不会小于其占位符文本的宽度