2010-10-19 36 views
0

我是新来的iOS编程,所以请允许我问愚蠢的问题,如果它是:)<select>标签不UIWebView的工作,对iOS4的

我有一个程序,使用一个UIWebView加载HTML页面,展示给最终用户。

的页面很简单,

<select> 
    <option>A</option> 
    <option>B</option> 
    <option>C</option> 
    <option>D</option> 
</select> 

WebView controller init: 
WebViewController *webVC = [[WebViewController alloc] initWithNibName:@"WebViewController" bundle:nil]; 

加载HTML页面中这样说:

[webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://*****/app/"]]]; 

当节目开始时,最终用户会看到一个下拉菜单,如果点击菜单,最终用户将看到一个选项列表,然后选择一个。

问题是,它在iOS3.2中工作正常,但是在我将SDK升级到iOS4后,它不起作用,点击下拉菜单时没有任何事情发生。

任何人都可以帮助我吗?

我的UIWebView有什么问题吗?

非常感谢。

回答

0

加载这样的HTML页面:

[webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://*****/app/"]]]; 
0

我遇到了同样的问题。

在我的情况下,它是UIView上的一个类,我最近定义为关闭键盘。每次用户触摸视图时,我都会在超级视图中调用endEditing:YES,并且放弃superview及其所有子视图的第一个响应者状态。

这工作得很好,直到我第一次在UIWebView中有一个html选择/选项。我无法选择条目。我是一个小混混,因为在我的本地代码中使用UIPickerView,它也不是问题。

问题是,我正在触摸UIPickerTableViewWrapperCell这是一个UITableViewCell,这是 - 一个UIView!通过辞职PickerView的UIPickerTableViewWrapperCell功能的第一响应者被破坏。

的解决方案是获得视图的上海华和检查类和以例外:

#import "UIView+KeyboardDismisser.h" 

@implementation UIView (KeyboardDismisser) 

-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    if(([[self superview] superclass] == [UITableViewCell class]) ||([[self superview] superclass] == [UITableView class]) ) 
    { 
     [super touchesBegan:touches withEvent:event]; 
    } 
    else 
    { 
     [[self superview] endEditing:YES]; 
    } 
} 
@end 

所以,要当心在中央的元素,如UIView的这种全局钩子,使例外。