GTextInput.cs 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243
  1. using System.Collections.Generic;
  2. using FairyGUI.Utils;
  3. using UnityEngine;
  4. namespace FairyGUI
  5. {
  6. /// <summary>
  7. ///
  8. /// </summary>
  9. public class GTextInput : GTextField
  10. {
  11. /// <summary>
  12. ///
  13. /// </summary>
  14. public InputTextField inputTextField { get; private set; }
  15. EventListener _onChanged;
  16. EventListener _onSubmit;
  17. public GTextInput()
  18. {
  19. _textField.autoSize = AutoSizeType.None;
  20. _textField.wordWrap = false;
  21. }
  22. /// <summary>
  23. ///
  24. /// </summary>
  25. public EventListener onChanged
  26. {
  27. get { return _onChanged ?? (_onChanged = new EventListener(this, "onChanged")); }
  28. }
  29. /// <summary>
  30. ///
  31. /// </summary>
  32. public EventListener onSubmit
  33. {
  34. get { return _onSubmit ?? (_onSubmit = new EventListener(this, "onSubmit")); }
  35. }
  36. /// <summary>
  37. ///
  38. /// </summary>
  39. public bool editable
  40. {
  41. get { return inputTextField.editable; }
  42. set { inputTextField.editable = value; }
  43. }
  44. /// <summary>
  45. ///
  46. /// </summary>
  47. public bool hideInput
  48. {
  49. get { return inputTextField.hideInput; }
  50. set { inputTextField.hideInput = value; }
  51. }
  52. /// <summary>
  53. ///
  54. /// </summary>
  55. public int maxLength
  56. {
  57. get { return inputTextField.maxLength; }
  58. set { inputTextField.maxLength = value; }
  59. }
  60. /// <summary>
  61. ///
  62. /// </summary>
  63. public string restrict
  64. {
  65. get { return inputTextField.restrict; }
  66. set { inputTextField.restrict = value; }
  67. }
  68. /// <summary>
  69. ///
  70. /// </summary>
  71. public bool displayAsPassword
  72. {
  73. get { return inputTextField.displayAsPassword; }
  74. set { inputTextField.displayAsPassword = value; }
  75. }
  76. /// <summary>
  77. ///
  78. /// </summary>
  79. public int caretPosition
  80. {
  81. get { return inputTextField.caretPosition; }
  82. set { inputTextField.caretPosition = value; }
  83. }
  84. /// <summary>
  85. ///
  86. /// </summary>
  87. public string promptText
  88. {
  89. get { return inputTextField.promptText; }
  90. set { inputTextField.promptText = value; }
  91. }
  92. /// <summary>
  93. /// 在移动设备上是否使用键盘输入。如果false,则文本在获得焦点后不会弹出键盘。
  94. /// </summary>
  95. public bool keyboardInput
  96. {
  97. get { return inputTextField.keyboardInput; }
  98. set { inputTextField.keyboardInput = value; }
  99. }
  100. /// <summary>
  101. /// <see cref="UnityEngine.TouchScreenKeyboardType"/>
  102. /// </summary>
  103. public int keyboardType
  104. {
  105. get { return inputTextField.keyboardType; }
  106. set { inputTextField.keyboardType = value; }
  107. }
  108. /// <summary>
  109. ///
  110. /// </summary>
  111. public bool disableIME
  112. {
  113. get { return inputTextField.disableIME; }
  114. set { inputTextField.disableIME = value; }
  115. }
  116. /// <summary>
  117. ///
  118. /// </summary>
  119. public Dictionary<uint, Emoji> emojies
  120. {
  121. get { return inputTextField.emojies; }
  122. set { inputTextField.emojies = value; }
  123. }
  124. /// <summary>
  125. ///
  126. /// </summary>
  127. public int border
  128. {
  129. get { return inputTextField.border; }
  130. set { inputTextField.border = value; }
  131. }
  132. /// <summary>
  133. ///
  134. /// </summary>
  135. public int corner
  136. {
  137. get { return inputTextField.corner; }
  138. set { inputTextField.corner = value; }
  139. }
  140. /// <summary>
  141. ///
  142. /// </summary>
  143. public Color borderColor
  144. {
  145. get { return inputTextField.borderColor; }
  146. set { inputTextField.borderColor = value; }
  147. }
  148. /// <summary>
  149. ///
  150. /// </summary>
  151. public Color backgroundColor
  152. {
  153. get { return inputTextField.backgroundColor; }
  154. set { inputTextField.backgroundColor = value; }
  155. }
  156. /// <summary>
  157. ///
  158. /// </summary>
  159. public bool mouseWheelEnabled
  160. {
  161. get { return inputTextField.mouseWheelEnabled; }
  162. set { inputTextField.mouseWheelEnabled = value; }
  163. }
  164. /// <summary>
  165. ///
  166. /// </summary>
  167. /// <param name="start"></param>
  168. /// <param name="length"></param>
  169. public void SetSelection(int start, int length)
  170. {
  171. inputTextField.SetSelection(start, length);
  172. }
  173. /// <summary>
  174. ///
  175. /// </summary>
  176. /// <param name="value"></param>
  177. public void ReplaceSelection(string value)
  178. {
  179. inputTextField.ReplaceSelection(value);
  180. }
  181. override protected void SetTextFieldText()
  182. {
  183. inputTextField.text = _text;
  184. }
  185. override protected void CreateDisplayObject()
  186. {
  187. inputTextField = new InputTextField();
  188. inputTextField.gOwner = this;
  189. displayObject = inputTextField;
  190. _textField = inputTextField.textField;
  191. }
  192. public override void Setup_BeforeAdd(ByteBuffer buffer, int beginPos)
  193. {
  194. base.Setup_BeforeAdd(buffer, beginPos);
  195. buffer.Seek(beginPos, 4);
  196. string str = buffer.ReadS();
  197. if (str != null)
  198. inputTextField.promptText = str;
  199. str = buffer.ReadS();
  200. if (str != null)
  201. inputTextField.restrict = str;
  202. int iv = buffer.ReadInt();
  203. if (iv != 0)
  204. inputTextField.maxLength = iv;
  205. iv = buffer.ReadInt();
  206. if (iv != 0)
  207. inputTextField.keyboardType = iv;
  208. if (buffer.ReadBool())
  209. inputTextField.displayAsPassword = true;
  210. }
  211. }
  212. }