Details
-
Bug
-
Resolution: Fixed
-
P2: Important
-
6.6
-
None
-
-
e51b2d70d (dev), 93ddf8903 (6.7), abcf6dc36 (6.6), 54aa32626 (tqtc/lts-6.5)
Description
As shown in the attached video, some of our customers reported a strange behavior with TextFields in our app. Every attempt to close the keyboard by either clicking on "done" or also calling Qt.inputMethod.hide(), results in a short hide animation of the keyboard which is interrupted and the keyboard is shown again.
It can only be hidden by setting the focus to another object.
The issue was reported on different iPhones, but is not easily reproducible (even on the same hardware). We could only reproduce it on an iPhone 14 at https://www.browserstack.com/ and got the following the following traces:
When keyboard can't be closed:
// from "(BOOL)resignFirstResponder" in qiostextresponder.mm self: <QIOSTextInputResponder: 0x2804c6e20> first: <QIOSTextInputResponder: 0x2804c6e20> <QIOSTextInputResponder: 0x2804c6e20> resigned first responder //Additional traces [UIResponder currentFirstResponder]: <QIOSDesktopManagerView: 0x10aa710c0; frame = (0 0; 390 844); autoresize = W+H; gestureRecognizers = <NSArray: 0x2839934e0>; animations = { AnimateSubLayerTransform=<CASpringAnimation: 0x283744d20>; sublayerTransform=<CASpringAnimation: 0x283747740>; }; layer = <CALayer: 0x283668000>> FirstResponderCandidate::currentCandidate(): NSObject(0x0) [self nextResponder]: <QUIMetalView: 0x10aabafc0; frame = (0 0; 390 844); gestureRecognizers = <NSArray: 0x28386b2a0>; layer = <CAMetalLayer: 0x28386ad60>; QIOSWindow(0x28158f160, window=WildWindow_QMLTYPE_27(0x2809d4ff0))> lost first responder, but not clearing focus object
When keyboard is closed properly (on a different device with the same app):
// from "(BOOL)resignFirstResponder" in qiostextresponder.mm self: <QIOSTextInputResponder: 0x2804c6e20> first: <QIOSTextInputResponder: 0x2804c6e20> <QIOSTextInputResponder: 0x283d84320> resigned first responder //Additional traces [UIResponder currentFirstResponder]: <QUIMetalView: 0x153353440; frame = (0 0; 390 844); gestureRecognizers = <NSArray: 0x2802b63a0>; layer = <CAMetalLayer: 0x2802e1a70>; QIOSWindow(0x282fc2300, window=WildWindow_QMLTYPE_27(0x2833d4960))> FirstResponderCandidate::currentCandidate(): NSObject(0x0) [self nextResponder]: <QUIMetalView: 0x153353440; frame = (0 0; 390 844); gestureRecognizers = <NSArray: 0x2802b63a0>; layer = <CAMetalLayer: 0x2802e1a70>; QIOSWindow(0x282fc2300, window=WildWindow_QMLTYPE_27(0x2833d4960))> no keyboard available, clearing focus object
Attachments
For Gerrit Dashboard: QTBUG-119601 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
529770,2 | iOS: Avoid category method name clash for UIResponder | 6.7 | qt/qtbase | Status: MERGED | +2 | 0 |
529777,5 | iOS: Avoid category method name clash for UIResponder | dev | qt/qtbase | Status: MERGED | +2 | 0 |
532687,2 | iOS: Avoid category method name clash for UIResponder | 6.6 | qt/qtbase | Status: MERGED | +2 | 0 |
532719,2 | iOS: Avoid category method name clash for UIResponder | tqtc/lts-6.5 | qt/tqtc-qtbase | Status: MERGED | +2 | 0 |