解决方法:和Android的解决方法类似也是不让它自动展示,改为在qml中检测后手动展示键盘
qt5.9.4下代码有所变动,做如下修改:不在让其在 /Users/nmlhm/Qt5.9.2/5.9.2/Src/qtbase/src/plugins/platforms/ios/ qiosinputcontext.mm中设置页面滚动了,只需在scrollToCursor函数中直接return 即可; 页面的滚动展示改为由qml中检测,在SScrollView.qml(此文件为自定义的展示页面的文件)中添加如下检测和展示代码:
property var connect:Connections{
ignoreUnknownSignals: true
target: Qt.inputMethod
property var timer: Timer{
id: idKeyboardTimer
interval: 30
onTriggered: {
if(idBaseScroll.visible && Qt.inputMethod.visible){
var keyBoardHeight = idMain.height - Qt.inputMethod.keyboardRectangle.y;
if(Qt.inputMethod.keyboardRectangle.y == 0)
keyBoardHeight = Qt.inputMethod.keyboardRectangle.height;
var offSet = idMain.height - (Qt.inputMethod.cursorRectangle.y+Qt.inputMethod.cursorRectangle.height+
keyBoardHeight+offsetDis);
if (offSet < 0)
idBaseScroll.flickableItem.contentY -= offSet;
}
}
}
onCursorRectangleChanged: {
idKeyboardTimer.restart();
}
onKeyboardRectangleChanged:{ //
idKeyboardTimer.restart();
}
}