1- 设置TextField, PasswordField, TextArea控件为输入焦点:
在绘制控件前使用GUI.SetNextControlName函数设置下一个输入控件的控制名称。
在绘制控件后的OnGUI 函数内可通过GUI.FocusControl函数设置对应控件为焦点控件。
示例:
GUI.SetNextControlName("test_control");
GUI.TextField(new Rect(4, 4, 200, 16), "test");
GUI.FocusControl("test_control");
2- 设置TextField, PasswordField, TextArea之类的控件输入光标位置:
通过函数
TextEditor obj = GUIUtility.GetStateObject(typeof(TextEditor), GUIUtility.keyboardControl) as TextEditor;
获取当前键盘输入焦点的文字控制对象。
后可通过控制对象进行相关的控制,如通过SelectTextEnd()函数将光标移动到末尾等操作。
注意的是当使用FocusControl设置焦点后需在下一帧调用光标设置等操作,否则会出现部分操作失效的情况,具体原因跟Unity本身GUI绘制的机制有关。
本文介绍如何在Unity中设置TextField、PasswordField和TextArea等控件的输入焦点,并讲解了如何调整这些控件的输入光标位置。文章还提到了在设置焦点后,需在下一帧进行光标位置调整的操作,以确保所有操作都能正确生效。
839

被折叠的 条评论
为什么被折叠?



