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); } }
static void OnValueChange(int id, string value) { if (!instances.ContainsKey(id)) { return; } var instance = instances[id]; 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) { var start = WebGLInputPlugin.WebGLInputSelectionStart(id); var end = WebGLInputPlugin.WebGLInputSelectionEnd(id); // take the offset.when char remove from input. var offset = instance.input.text.Length - value.Length; WebGLInputPlugin.WebGLInputText(id, instance.input.text); // reset the input element selection range!! WebGLInputPlugin.WebGLInputSetSelectionRange(id, start + offset, end + offset); } }