键入输入字段后,Webview不会返回其位置

时间:2012-04-16 20:39:38

标签: iphone uiwebview

我正在开发一些包含带有这些属性的webview的iPhone应用程序:

[[webView.subviews objectAtIndex:0] setScrollEnabled:NO];  //to stop scrolling

[[webView.subviews objectAtIndex:0] setBounces:NO]; //to stop bouncing

在webview上有一个文本输入 问题是,在我尝试输入输入后,键盘正在上升,所有页面也都在上升。但是在键盘关闭后,页面本身会保持向上。

example 1

由于webview没有滚动,因此在重新启动应用程序之前无法正确查看页面。

任何想法?

1 个答案:

答案 0 :(得分:0)

这是一个简单的解决方案。首先在视图控制器的- (void)viewDidLoad中添加以下代码:

[[NSNotificationCenter defaultCenter] addObserver:self 
                                         selector:@selector(keyboardDidHide:) 
                                             name:UIKeyboardDidHideNotification 
                                           object:nil];

这样可以在键盘隐藏时收到通知。

将以下方法添加到视图控制器:

- (void)keyboardDidHide: (NSNotification*) notification
{
    UIScrollView* scroll = nil;

    if([webView respondsToSelector: @selector(scrollView)])
        scroll = webView.scrollView; //iOS5 and up
    else
        scroll = [webView.subviews objectAtIndex:0]; //iOS4 and below

    [scroll setContentOffset: CGPointMake(0, 0)];
}

每当隐藏键盘时,这将导致UIWebView滚动到0,0(顶部)。