LVRS Storyboard Frame
components/control/InputMethodGuard.svx
Path: components/control/InputMethodGuard.svx
InputMethodGuard
위치: qml/components/control/util/InputMethodGuard.qml
InputMethodGuard는 IME 로캘/가시성/초점 조건이 변경될 때 텍스트 구성 상태를 보호합니다.
목적
- IME 전환 전반에 걸쳐 사전 편집/구성 잔여물을 방지합니다.
- 민감한 텍스트 컨트롤에 대해 명시적인 작성 커밋 지점을 제공합니다.
API
target(텍스트 입력형 객체)guardEnabled(기본값true)commitOnLocaleChanged(기본값false)commitOnVisibilityLost(기본값true)commitOnFocusLost(기본값true)logCommitEvents(기본값false)
커밋 조건
target.inputMethodComposing == true인 경우 가드는 구성된 트리거에 대해 구성을 커밋합니다.
- 로케일 변경
- IME 가시성 상실
- 초점을 잃었다
사용법
import LVRS 1.0 as LV
LV.InputMethodGuard {
target: editor
guardEnabled: enabled && !readOnly
}
동작 원리
Qt.inputMethod및 대상 초점 신호를 수신합니다.- 가드가 활성화되고 대상이 구성 중일 때만
Qt.inputMethod.commit()를 실행합니다. - 선택적 디버그 출력은
Debug.log를 통해 커밋 이유를 기록합니다.
배포 노트
대상 사용자 기반이 구성 중에 IME 로케일을 적극적으로 전환하지 않는 한 기본적으로 로케일 변경 커밋을 비활성화된 상태로 유지합니다. 실제 손상 보고가 더 엄격한 커밋 타이밍을 정당화하는 경우에만 활성화하십시오.
FAQ
Q. 로케일 변경 커밋이 기본적으로 비활성화되어 있는 이유는 무엇입니까? A. 로케일 변경은 포커스/가시성 전환보다 빈도가 낮으며 일부 IME 워크플로에서는 적극적인 커밋이 방해가 될 수 있습니다.
Q. 읽기 전용 필드에 가드를 부착해야 합니까? A. 아니요. 읽기 전용 컨트롤에 대해 guardEnabled를 false로 유지하세요.
검증 체크리스트
- 활성화되면 포커스 손실 시 텍스트 작성이 커밋되는지 확인하고,
- 일반 입력 경로에 중복된 커밋 부작용이 없는지 확인하고,
- 편집 불가능한 컨트롤에 대해 가드가 비활성화되어 있는지 확인하십시오.