检测在uitextview上单击nsurl

时间:2012-06-08 08:29:34

标签: iphone uiwebview override uitextview

我的textview中有一个网址,当我们点击此网址时,会在默认的Safari中打开此网址。我想检测这个事件。我也试过了this

但它不适合我。任何人都可以建议我如何做到这一点。为我提供一个样本。

我的应用程序deligate是UIResponder类型。

3 个答案:

答案 0 :(得分:2)

other answer按预期工作。

创建New File,选择Objective-C Class

  • 分类:MyApplication
  • 子类:UIApplication

将此代码粘贴到.m文件中:

- (BOOL)openURL:(NSURL *)url {
    if  ([self handleOpenURL:url])
        return YES;
    else
        return [super openURL:url];
}
- (BOOL)handleOpenURL:(NSURL*)url {
    NSLog(@"my url handler");
    return YES;
}

接下来打开main.m并更改第三个参数

return UIApplicationMain(argc, argv, nil, NSStringFromClass([SampleAppDelegate class]));

到您的UIApplication - 子类名称

return UIApplicationMain(argc, argv, @"MyApplication", NSStringFromClass([SampleAppDelegate class]));

答案 1 :(得分:0)

看看这个GitHub项目:MSTextView

答案 2 :(得分:0)

假设您只需要显示带链接的静态标签,我们在Nimbus中有一个相当强大的属性标签,您可能希望查看:

http://docs.nimbuskit.info/group___nimbus_attributed_label.html

标签使用CoreText和NSAttributedString,因此它基于核心Apple技术构建。它的行为像UILabel一样。以下是实现NIAttributedLabel委托的示例:

https://github.com/jverkoey/nimbus/blob/master/examples/attributedlabel/BasicAttributedLabel/BasicAttributedLabel/src/MashupViewController.m#L92

更多信息: http://nimbuskit.info/