objective-c - 设置 UIWebView 内容在显示键盘时不移动

标签 objective-c uiwebview keyboard focus uitextfield

我已经做了足够多的研究,但找不到我的问题的答案。

假设我有一个 webView,其中有一些文本字段,其中一些位于屏幕底部,这样当键盘出现时它应该隐藏这些字段。键盘出现后,webView 的内容向上滑动以使该字段可见。问题是我希望内容向上滑动。

问题是:如何禁用 webview 的该功能,或者以某种方式使内容不向上滚动。???

谢谢,如有任何帮助,我们将不胜感激。

最佳答案

如果您想禁用所有滚动,包括在表单字段之间导航时的自动滚动,设置 webView.scrollView.scrollEnabled=NO并没有涵盖所有内容。这会停止正常的点击和拖动滚动,但不会在您浏览 Web 表单时自动将字段带入 View 滚动。

同时,关注 UIKeyboardWillShowNotification 当键盘出现时将允许您阻止滚动,但如果键盘已经启动以编辑不同的表单字段,则不会执行任何操作。

以下是通过三个简单步骤防止所有滚动的方法:

1) 创建 UIWebView 后,禁用正常滚动:

myWebView.scrollView.scrollEnabled = NO;

2) 然后将您的 View Controller 注册为 scrollView 的委托(delegate):

myWebView.scrollView.delegate = self;

(并确保将 <UIScrollViewDelegate> 添加到类的 @interface 定义中以防止编译器警告)

3) 捕获和撤消所有滚动事件:

// UIScrollViewDelegate method
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    scrollView.bounds = myWebView.bounds;
}

关于objective-c - 设置 UIWebView 内容在显示键盘时不移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15926260/

相关文章:

iphone - ViewController - 如何正确使用它?

objective-c - AF网络进度方法

objective-c - objective-c 如何在运行时处理方法解析?

ios - UIWebView 无需转到 iOS 的视频播放器即可播放 Html 5 视频

android - 如何向默认的 android 键盘添加一行额外的键?

iphone - 当我尝试调用 dismissViewController 时应用程序崩溃

ios - 从不同的类在 webView 上加载 NSURLRequest。

ios - iOS 上嵌入 YouTube 视频的媒体回调

ios - Swift - 自定义系统键盘仅在我的应用程序中

JavaScript:在输入文本上使用向上和向下箭头