Кнопка QML не активируется, когда текстовое поле под ним имеет фокус на iOS - PullRequest
1 голос
/ 30 января 2020

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 и кнопки «очистить» поверх него. TextField screen shot

...