Как настроить лист удержания ссылки UIWebView - PullRequest
3 голосов
/ 01 сентября 2010

Мне было интересно, как я могу переопределить UIActionSheet, который появляется при нажатии и удерживании пальца на ссылке в UIWebView (он показывает ссылку и кнопку открытия и копирования). Мне нужно добавить кнопку в оповещение, но я не знаю, как ее настроить.

У кого-нибудь есть идеи, как это решить?

1 Ответ

3 голосов
/ 04 сентября 2010

Учитывая, что такого API не существует, вы все равно можете настроить лист нестандартным api-подобным способом, не используя private api. Возможно, проще всего будет наблюдать подпредставления этого веб-просмотра и, когда он появляется (например, всплывающее окно), проверить его класс и, если оно такое всплывающее, настроить его. Вот как я это попробую.

Тем не менее: это вздор и может легко сломаться в следующем обновлении.

Добавить наблюдение:

[myWebView addObserver:self forKeyPath:@"subviews" options:0 context:@"popup"];

Тогда соблюдайте:

- (void)observeValueForKeyPath:(NSString *)keyPath
                      ofObject:(id)object
                        change:(NSDictionary *)change
                       context:(void *)context
{
    if (context == @"popup") {
        for (UIView *view in [object subviews]) {
            if ([view isKindOfClass: [UIAlertView class]])
                 [self customizeAlert: (UIAlertView*)view];
        }
    }
    [super observeValueForKeyPath:keyPath
                         ofObject:object
                           change:change
                          context:context];
}

Затем выполните настройку следующим способом:

- (void)customizeAlert:(UIAlertView*)alert { ... }
...