我有一个启用了自动链接检测的NSTextView。当我以编程方式[myTextView setString:@"http://google.com"]
设置文本时,它不会自动显示链接。
如果我在文本视图中输入任何内容,它将添加链接。我希望它添加链接
答案 0 :(得分:12)
不得不花一些时间寻找解决方案,但无法在任何地方找到它。
您不需要任何第三方库。可可会为你做。
checkTextInDocument:仅适用于可编辑的textViews(Apple忘记提及此内容)。 如果您的NSTextView是只读的,则代码可以正常运行:
[myTextView setEditable:YES];
[myTextView checkTextInDocument:nil];
[myTextView setEditable:NO];
不要忘记检查"智能链接"在.xib文件中
答案 1 :(得分:6)
答案 2 :(得分:5)
如a comment on Randall's site所述,有一种简单的方法可以在10.6或更高版本中执行此操作:
[self.textView checkTextInDocument:nil];
根据视图的设置方式,这可能不仅仅是添加链接 - 例如它可以添加智能引号。您可以使用setEnabledTextCheckingTypes:
指定要检查的内容。在我的情况下,我希望在键入时启用智能引号,但是当我以编程方式更改文本时,我不希望它们被添加。所以我可以使用这样的东西:
NSTextCheckingTypes oldTypes = self.textView.enabledTextCheckingTypes;
[self.textView setEnabledTextCheckingTypes:NSTextCheckingTypeLink];
[self.textView checkTextInDocument:nil];
[self.textView setEnabledTextCheckingTypes:oldTypes];
在添加链接后,该字段将返回其先前的行为。