void Update() { if (input == null || !input.isFocused) { return; } // 未登録の場合、選択する if (!instances.ContainsKey(id)) { OnSelect(); } else if (!WebGLInputPlugin.WebGLInputIsFocus(id)) { // focus this id WebGLInputPlugin.WebGLInputFocus(id); } var start = WebGLInputPlugin.WebGLInputSelectionStart(id); var end = WebGLInputPlugin.WebGLInputSelectionEnd(id); // 選択方向によって設定します if (WebGLInputPlugin.WebGLInputSelectionDirection(id) == -1) { input.selectionFocusPosition = start; input.selectionAnchorPosition = end; } else { input.selectionFocusPosition = end; input.selectionAnchorPosition = start; } input.Rebuild(); }
void Update() { if (!input.isFocused) { return; } // 未登録の場合、選択する if (!instances.ContainsKey(id)) { OnSelect(); } var start = WebGLInputPlugin.WebGLInputSelectionStart(id); var end = WebGLInputPlugin.WebGLInputSelectionEnd(id); // 選択方向によって設定します if (WebGLInputPlugin.WebGLInputSelectionDirection(id) == -1) { input.selectionFocusPosition = start; input.selectionAnchorPosition = end; } else { input.selectionFocusPosition = end; input.selectionAnchorPosition = start; } input.Rebuild(CanvasUpdate.LatePreRender); input.textComponent.SetAllDirty(); }
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); } }