QtQuick 2 Я пытаюсь создать «очистить» кнопку для TextField, которая появляется над TextField, при щелчке по которой очищается любой текст в TextField.
Ниже приведен мой файл main.qml. При запуске на рабочем столе (как MacOS, так и Windows), вы можете в любое время нажать кнопку «очистить» или «X», чтобы очистить TextField.
Однако - вкл. iOS кнопка «очистить» не принимает щелчки, когда фокус находится на текстовом поле под ней. Вы можете использовать кнопку только тогда, когда вы не активно редактируете TextField. IE - Если ваш фокус находится где-то еще, кнопка «очистить» работает.
ОБНОВЛЕНИЕ : При нажатии на кнопку «очистить» при нажатии она выглядит визуально угнетенной. Но никаких onClicked
действий не происходит. Кроме того, если я переместил кнопку ниже текстового поля, а не поверх него - он работает.
Как я могу позволить кнопке очистки функционировать, когда фокус находится на текстовом поле под ним? В качестве альтернативы - есть ли другой / более простой способ создать TextField с кнопкой очистки, подобной этой?
import QtQuick 2.12
import QtQuick.Window 2.12
import QtQuick.Controls 2.12
Window {
visible: true
width: 640
height: 480
TextField {
id: searchField
placeholderText: "Search..."
}
RoundButton {
id: clearSearch
anchors.right: searchField.right
anchors.top: searchField.top
anchors.bottom: searchField.bottom
anchors.margins: 5
text: "X"
opacity: 0.5
onClicked: {
console.log("clear btn clicked");
searchField.clear();
searchField.forceActiveFocus();
}
}
}
Вот снимок экрана моего TextField и кнопки «очистить» поверх него. 