iOS: send a Qt::Key_Return when the user hits done/enter

We need to send key events when the user hits enter, otherwise
there is no way to know when the user has 'confirmed' the
text he wrote. This is on par with how it's done for the
Android port.

Change-Id: I585d4198de24b0d251e5e0dd2956ce81b6483f82
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
This commit is contained in:
Richard Moe Gustavsen 2014-03-18 15:33:37 +01:00 committed by The Qt Project
parent 37ba38b334
commit 68c8016394

View File

@ -492,9 +492,18 @@ Q_GLOBAL_STATIC(StaticVariables, staticVariables);
if (!focusObject)
return;
if ([text isEqualToString:@"\n"] && self.returnKeyType == UIReturnKeyDone)
if ([text isEqualToString:@"\n"]) {
QKeyEvent press(QEvent::KeyPress, Qt::Key_Return, Qt::NoModifier);
QKeyEvent release(QEvent::KeyRelease, Qt::Key_Return, Qt::NoModifier);
[self sendEventToFocusObject:press];
[self sendEventToFocusObject:release];
if (self.returnKeyType == UIReturnKeyDone)
[self resignFirstResponder];
return;
}
QInputMethodEvent e;
e.setCommitString(QString::fromNSString(text));
[self sendEventToFocusObject:e];