iOS: Prevent UIKit from adding UITextInteraction to our view
It's added automatically when some languages such as Japanese are the active input language/keyboard, which results in UIKit triggering the edit menu for any tap in the UI, regardless of whether it hits the focus object or not. Adopting the protocol is a much larger effort and needs to be coordinated so that we still support text interaction on iOS versions pre 13.0. Even with this patch the UITextSelectionView will still blink its own cursor, which doesn't seem to sync up with the UITextInput protocol's view of where the cursor is. Fixes: QTBUG-78496 Change-Id: I61500ad7ab9c8577f71188c0c99ead39465e3839 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
This commit is contained in:
parent
5aa13ea144
commit
e00d888dae
@ -628,6 +628,18 @@ Q_LOGGING_CATEGORY(lcQpaTablet, "qt.qpa.input.tablet")
|
||||
#endif
|
||||
}
|
||||
|
||||
#if QT_IOS_PLATFORM_SDK_EQUAL_OR_ABOVE(130000)
|
||||
- (void)addInteraction:(id<UIInteraction>)interaction
|
||||
{
|
||||
if (__builtin_available(iOS 13.0, *)) {
|
||||
if ([interaction isKindOfClass:UITextInteraction.class])
|
||||
return; // Prevent iOS from adding UITextInteraction
|
||||
}
|
||||
|
||||
[super addInteraction:interaction];
|
||||
}
|
||||
#endif
|
||||
|
||||
@end
|
||||
|
||||
@implementation UIView (QtHelpers)
|
||||
|
Loading…
Reference in New Issue
Block a user