如何自定义UIWebView点击保持链接表

时间:2010-09-01 19:57:40

标签: objective-c cocoa-touch ipad uikit uiwebview

我想知道如何覆盖在UIWebView中点击并按住手指时显示的UIActionSheet(它显示链接以及打开和复制按钮)。我需要在警报中添加一个按钮,但我不知道如何自定义它。

有没有人知道如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

鉴于不存在此类API,您仍然可以 以非标准api方式自定义工作表,而无需使用私有API。最简单的可能是观察该webview的子视图,当出现一个(如弹出窗口)检查它的类时,如果是这样的弹出窗口,则自定义它。这是我尝试的方式。

仍然:这是hacky ,可能很容易在下次更新时中断。

添加观察:

[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 { ... }