import QtQuick 2.15 import QtQuick.Controls 2.15 // Helper component to ensure virtual keyboard works properly Item { id: keyboardHelper // Force show keyboard for a specific TextField function showKeyboardFor(textField) { textField.forceActiveFocus() Qt.inputMethod.show() } // Hide keyboard function hideKeyboard() { Qt.inputMethod.hide() } // Enhanced TextField with proper keyboard support component EnhancedTextField: TextField { activeFocusOnPress: true selectByMouse: true // Default input hints inputMethodHints: Qt.ImhNone MouseArea { anchors.fill: parent onPressed: { parent.forceActiveFocus() Qt.inputMethod.show() mouse.accepted = false } } onActiveFocusChanged: { if (activeFocus) { Qt.inputMethod.show() } } Keys.onReturnPressed: { Qt.inputMethod.hide() focus = false } Keys.onEscapePressed: { Qt.inputMethod.hide() focus = false } } // Numeric-only TextField component NumericTextField: EnhancedTextField { inputMethodHints: Qt.ImhDigitsOnly | Qt.ImhNoPredictiveText validator: IntValidator { bottom: 0; top: 9999 } // Only allow numeric input onTextChanged: { var numeric = text.replace(/[^0-9]/g, '') if (text !== numeric) { text = numeric } } } }