先看代码:
using UnityEngine;
using UnityEngine.UI;
public class TestInput : MonoBehaviour
{
[SerializeField]
InputField inputField;
void Start()
{
Debug.Log(inputField.text);
Debug.Log(inputField.text.Length);
Debug.Log(inputField.preferredWidth);
Debug.Log(inputField.textComponent.text);
Debug.Log(inputField.textComponent.text.Length);
Debug.Log(inputField.textComponent.preferredWidth);
}
}
再看输出结果:
这里InputField的输入内容是:"abcdefghijklmnopqrstuvwxyz",这个是实际输入的内容,打印出来的字母数量是26,适配宽度preferredWidth是181。
但是InputField的属性textComponent的文本内容是"abcdefghijklmno",也就是文本输入框内部实际显示的内容,所以它的字母数量是15,适配宽度preferredWidth是103。
这里需要说明的是以前不知道InputField有个preferredWidth属性,以为只有Text类的对象才有这个属性,而且以前把inputField.textComponent.text和inputField.text混为一谈,闹了不少笑话,哈哈。