TouchScreenKeyboard.cs 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. using UnityEngine;
  2. namespace FairyGUI
  3. {
  4. /// <summary>
  5. ///
  6. /// </summary>
  7. public class TouchScreenKeyboard : IKeyboard
  8. {
  9. UnityEngine.TouchScreenKeyboard _keyboard;
  10. public bool done
  11. {
  12. #if UNITY_2017_2_OR_NEWER
  13. get
  14. {
  15. return _keyboard == null
  16. || _keyboard.status == UnityEngine.TouchScreenKeyboard.Status.Done
  17. || _keyboard.status == UnityEngine.TouchScreenKeyboard.Status.Canceled
  18. || _keyboard.status == UnityEngine.TouchScreenKeyboard.Status.LostFocus;
  19. }
  20. #else
  21. get { return _keyboard == null || _keyboard.done || _keyboard.wasCanceled; }
  22. #endif
  23. }
  24. public bool supportsCaret
  25. {
  26. get { return false; }
  27. }
  28. public string GetInput()
  29. {
  30. if (_keyboard != null)
  31. {
  32. string s = _keyboard.text;
  33. if (this.done)
  34. _keyboard = null;
  35. return s;
  36. }
  37. else
  38. return null;
  39. }
  40. public void Open(string text, bool autocorrection, bool multiline, bool secure, bool alert, string textPlaceholder, int keyboardType, bool hideInput)
  41. {
  42. if (_keyboard != null)
  43. return;
  44. UnityEngine.TouchScreenKeyboard.hideInput = hideInput;
  45. _keyboard = UnityEngine.TouchScreenKeyboard.Open(text, (TouchScreenKeyboardType)keyboardType, autocorrection, multiline, secure, alert, textPlaceholder);
  46. }
  47. public void Close()
  48. {
  49. if (_keyboard != null)
  50. {
  51. _keyboard.active = false;
  52. _keyboard = null;
  53. }
  54. }
  55. }
  56. }