Esempio n. 1
0
        /// <summary>
        /// 対象が選択されたとき
        /// </summary>
        /// <param name="eventData"></param>
        public void OnSelect(/*BaseEventData eventData*/)
        {
            bool isPassword = input.contentType == ContentType.Password;

            id           = WebGLInputPlugin.WebGLInputCreate(input.fontSize, input.text, input.placeholder, input.lineType != LineType.SingleLine, isPassword, !showHtmlElement);
            PreviousRect = GetScreenCoordinates(input.RectTransform());
            SizeChanged();

            instances[id] = this;
            WebGLInputPlugin.WebGLInputEnterSubmit(id, input.lineType != LineType.MultiLineNewline);
            WebGLInputPlugin.WebGLInputOnFocus(id, OnFocus);
            WebGLInputPlugin.WebGLInputOnBlur(id, OnBlur);
            WebGLInputPlugin.WebGLInputOnValueChange(id, OnValueChange);
            WebGLInputPlugin.WebGLInputOnEditEnd(id, OnEditEnd);
            WebGLInputPlugin.WebGLInputTab(id, OnTab);
            // default value : https://www.w3schools.com/tags/att_input_maxlength.asp
            WebGLInputPlugin.WebGLInputMaxLength(id, (input.characterLimit > 0) ? input.characterLimit : 524288);
            WebGLInputPlugin.WebGLInputFocus(id);
            WebGLInputPlugin.WebGLInputEnableTabText(id, enableTabText);
            WebGLInputPlugin.WebGLInputSetReadOnly(id, input.ReadOnly);
            WebGLInputPlugin.WebGLInputSetName(id, name);

            if (input.OnFocusSelectAll)
            {
                WebGLInputPlugin.WebGLInputSetSelectionRange(id, 0, input.text.Length);
            }

            WebGLWindow.OnBlurEvent += OnWindowBlur;
        }
Esempio n. 2
0
        static void OnValueChange(int id, string value)
        {
            if (!instances.ContainsKey(id))
            {
                return;
            }

            var instance = instances[id];
            var index    = instance.input.caretPosition;

            if (!instance.input.ReadOnly)
            {
                instance.input.text = value;
            }


            // InputField.ContentType.Name が Name の場合、先頭文字が強制的大文字になるため小文字にして比べる
            if (instance.input.contentType == ContentType.Name)
            {
                if (string.Compare(instance.input.text, value, true) == 0)
                {
                    value = instance.input.text;
                }
            }

            // InputField の ContentType による整形したテキストを HTML の input に再設定します
            if (value != instance.input.text)
            {
                WebGLInputPlugin.WebGLInputText(id, instance.input.text);
                WebGLInputPlugin.WebGLInputSetSelectionRange(id, index, index);
            }
        }