【发布时间】:2010-02-19 03:33:34
【问题描述】:
我是 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;
}
希望有人可以帮助我或为我指明正确的方向。
谢谢!
皮特
【问题讨论】:
-
您是否尝试过实施 JavaScript 解决方案?当文本字段的焦点事件触发时,您可以执行一个函数,该函数将平滑地向上滚动页面以适应键盘。另请参阅 - (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script for Objective-C/Javascript 合作。
标签: iphone objective-c iphone-sdk-3.0 uiwebview