我使用UITextView
的委托方法textView:shouldInteractWithURL:inRange:interaction:
来捕获网址点击。有没有办法确定哪个UIDataDetectorTypes
触发了委托方法?
我对电子邮件,电话号码,地址(地理位置),日期/时间等有不同的自定义方法。现在,我能看到的唯一方法是使用RegEx来猜测"猜测"使用URL组合的类型(对http / https urls以外的任何内容都没用)和通过
获取的原始数据- (BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)URL inRange:(NSRange)characterRange interaction:(UITextItemInteraction)interaction {
NSString *rawText = [textView.text substringWithRange:characterRange];
// Do fancy stuff with the data
// Hacky way to test if the url tapped isn't an email/map address
BOOL isURL = [[URL absoluteString] isEqualToString:[textView.text substringWithRange:characterRange]];
// Return no when the URL can be captured and custom methods used. Otherwise return YES.
return NO;
}
编辑:我偶然发现了NSDataDetector
可能有所帮助,但我不知道从哪里开始
答案 0 :(得分:0)
我相信我找到了解决问题的方法。我发布了我的回答,以便其他任何在这个问题上苦苦挣扎的人都可以看到我做了什么(并且如果不是很好的话,可能有助于改进我的代码。)
loop size = 4
neg loop size = 18446744073709551612
显然它是一个不完整的实现,但它显示了如何使用内置的RegEx子类来获取不同的类型