2010-10-19 19 views
0

Je suis nouveau à la programmation iOS, donc s'il vous plaît me permettre de poser des questions stupides si elle est :)tag <select> ne fonctionne pas dans UIWebView sur iOS4

J'ai un programme, en utilisant UIWebView pour charger la page HTML et afficher aux utilisateurs finaux.

La page est assez simple,

<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]; 

Chargez la page HTML de cette façon:

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

Lorsque le programme a commencé, l'utilisateur final verra un menu déroulant, si cliquez sur le menu , l'utilisateur final verra une liste d'options, puis choisissez l'une d'entre elles. Le problème est, il fonctionne très bien dans iOS3.2, mais après avoir mis à jour le SDK vers iOS4, cela ne fonctionne pas, rien ne se passe lorsque vous cliquez sur le menu déroulant.

Quelqu'un peut-il m'aider?

Y at-il un problème avec mon UIWebView?

Merci beaucoup.

Répondre

0

Chargez la page HTML de cette façon:

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

je suis tombé sur le même problème.

Dans mon cas c'était une catégorie sur UIView que j'ai récemment défini pour fermer le clavier. Chaque fois que l'utilisateur touche une vue, j'appelle endEditing: YES sur la super vue et je démissionne de l'état du premier répondeur de la super-vue et de toutes ses sous-vues.

Cela a bien fonctionné jusqu'à la première fois que j'ai eu une sélection/option html dans un UIWebView. Je n'ai pas pu sélectionner les entrées. J'étais un peu confus car avec un UIPickerView dans mon code natif, ce n'était pas un problème non plus.

Le problème était, que je touchais un UIPickerTableViewWrapperCell qui est un UITableViewCell et c'est - un UIView! En démissionnant, le premier répondeur de la fonctionnalité UIPickerTableViewWrapperCell de PickerView a été brisé.

La solution était d'obtenir le superview de la vue et vérifier les classes et faire des exceptions:

#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 

montre donc pour ces crochets globaux sur les éléments centraux comme UIView et faire des exceptions.