我们正在使用Phonegap开发我们的移动应用程序,并从这里借鉴了代码以去除键盘上的黑色下一个/上一个/完成栏:https://dev59.com/mF7Va4cB1Zd3GeqPN-GR#9276023。该代码找到黑色栏,作为UIView对象,并在其上调用'removeFromSuperview'。
我们不熟悉iOS SDK/API。因此,虽然我们可以查看代码并了解它正在做什么,但我们无法确定它是否正在正确执行,或如何改进它。
我们遇到的具体问题是:
我们有一个用于编写消息的文本字段,并手动控制该字段的放置位置,使其正好位于键盘上方,类似于本机短信应用程序。换句话说,我们将其放在了原来应该有黑色栏的地方。
当我们聚焦/输入消息字段时,系统会将视图向上推。似乎这是一种机制,确保用户在输入时文本字段不会不可见。
即使文本字段可见,这也会发生。
我注意到将输入字段放在黑色栏通常所在的位置(而不是后面),视图就不会滚动。
因此,系统似乎仍然认为黑色栏还在那里!
(为了再次确认:当未删除黑色栏并且我们将文本字段放在其正上方时,我们可以聚焦并在其中键入,视图不会滚动)。
所以问题是:
编辑放在黑色栏正后面的文本字段时,“系统”为什么会将内容向上推?这是因为黑色栏还没有完全移除吗?我们需要做些什么才能“完全”删除黑色栏?我们需要强制iOS重新计算键盘的大小吗?或者还有其他原因?
这种机制(推送视图)是由iOS的UIWebView实现的还是由Phonegap实现的?
我们不熟悉iOS SDK/API。因此,虽然我们可以查看代码并了解它正在做什么,但我们无法确定它是否正在正确执行,或如何改进它。
我们遇到的具体问题是:
我们有一个用于编写消息的文本字段,并手动控制该字段的放置位置,使其正好位于键盘上方,类似于本机短信应用程序。换句话说,我们将其放在了原来应该有黑色栏的地方。
当我们聚焦/输入消息字段时,系统会将视图向上推。似乎这是一种机制,确保用户在输入时文本字段不会不可见。
即使文本字段可见,这也会发生。
我注意到将输入字段放在黑色栏通常所在的位置(而不是后面),视图就不会滚动。
因此,系统似乎仍然认为黑色栏还在那里!
(为了再次确认:当未删除黑色栏并且我们将文本字段放在其正上方时,我们可以聚焦并在其中键入,视图不会滚动)。
所以问题是:
编辑放在黑色栏正后面的文本字段时,“系统”为什么会将内容向上推?这是因为黑色栏还没有完全移除吗?我们需要做些什么才能“完全”删除黑色栏?我们需要强制iOS重新计算键盘的大小吗?或者还有其他原因?
这种机制(推送视图)是由iOS的UIWebView实现的还是由Phonegap实现的?
有没有使用PhoneGap开发的应用程序解决这个问题?
UIScrollView *webScroll = [self.webView.subviews lastObject];
但好像不起作用。 - hasenNSLog(%@,self.webView.subviews)
。也许你有更多的子视图,我只有一个(scrollView)。 - user207616.scrollView
仅适用于 iOS 5.0 及以上版本;但您需要一个在 4.0 上也能运行的解决方案 ;) … 不过,您可以实现一个开关,如果您喜欢if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 5.0)
。但请确保 4.0 的代码按预期工作。 - user207616