<select> тег не работает в UIWebView на iOS4 - PullRequest
0 голосов
/ 19 октября 2010

Я новичок в программировании на iOS, поэтому, пожалуйста, позвольте мне задавать глупые вопросы, если это так:)

У меня есть программа, использующая 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?

Большое спасибо.

Ответы [ 2 ]

0 голосов
/ 23 июля 2013

Я столкнулся с той же проблемой.

В моем случае это была категория в UIView, которую я недавно определил для отклонения клавиатуры. Каждый раз, когда пользователь касается представления, я вызываю endEditing: YES в суперпредставлении и оставляю состояние первого респондента суперпредставления и всех его подпредставлений.

Это работало нормально, пока у меня в первый раз не было выбора HTML / опция в UIWebView. Я не смог выбрать записи. Я был немного смущен, потому что с UIPickerView в моем родном коде это тоже не было проблемой.

Проблема заключалась в том, что я касался UIPickerTableViewWrapperCell, который является UITableViewCell, а это - UIView! При отставке первого респондента UIPickerTableViewWrapperCell функциональность PickerView была нарушена.

Решением было получить суперпредставление вида, проверить классы и сделать исключения:

#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, и делайте исключения.

0 голосов
/ 19 октября 2010

Загрузить HTML-страницу следующим образом:

[webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://*****/app/"]]];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...