我是iPhone开发的初学者,我希望有人可以帮我解决我的问题。
我有一个显示网页的UIWebView。如果用户点击网页上的文本框,则会弹出键盘。这很棒,但它隐藏了用户点击的字段。我环顾四周,找到了处理这个问题的代码示例,但没有一个专门处理UIWebView。我已经实现了UIKeyboardDidShowNotification和UIKeyboardDidHideNotification,但我不确定如何正确调整UIWebView的大小。我已经尝试将UIWebView放在UIScrollView中,但没有取得任何成功。下面的代码似乎调整了UIWebView,但不会让它滚动到该字段。
-(void) keyboardDidShow: (NSNotification *)notif{
if (keyboardShown) return;
NSLog(@"Keyboard Show");
NSDictionary *info = [notif userInfo];
NSValue *aValue = [info objectForKey:UIKeyboardBoundsUserInfoKey];
CGSize keyboardSize = [aValue CGRectValue].size;
CGRect viewFrame = webBrowser.frame;
viewFrame.size.height -= keyboardSize.height;
webBrowser.frame = viewFrame;
keyboardShown = YES;
}
-(void) keyboardDidHide: (NSNotification *)notif{
NSLog(@"Keyboard hide");
keyboardShown = NO;
}
希望有人可以帮助我或指出我正确的方向。
谢谢!
皮特
答案 0 :(得分:1)
如果你想手动完成,我认为你需要改变视图的中心位置而不是它的高度。也就是说,为webBrowser.frame设置一个新的y位置,即减去keyboardSize.height。
答案 1 :(得分:1)
您可以创建一个UIAnimation,它将使用键盘移动UIWebview,然后在键入结束时使用其委托创建另一个UIAnimation,以将UIWebview移回原始位置。
答案 2 :(得分:0)
你可以尝试将UIWebView的边界缩小以解决问题。
CGRect viewFrame = webBrowser.frame;
viewFrame.size.height -= keyboardSize.height;
webBrowser.bounds = viewFrame;