Ran*_*all 9 macos cocoa nstextview
我有一个启用了自动链接检测的NSTextView.当我以编程方式设置文本时,[myTextView setString:@"http://google.com"]
它不会自动显示链接.
如果我在文本视图中键入任何内容,它将添加链接.我希望它添加链接
Ole*_*kov 13
不得不花一些时间寻找解决方案,但无法在任何地方找到它.
您不需要任何第三方库.可可会为你做.
checkTextInDocument:仅适用于可编辑的textViews(Apple忘记提及此内容).如果您的NSTextView是只读的,这里的代码是有效的:
[myTextView setEditable:YES];
[myTextView checkTextInDocument:nil];
[myTextView setEditable:NO];
Run Code Online (Sandbox Code Playgroud)
不要忘记检查.xib文件中的"智能链接"
正如Randall网站上的评论所述,在10.6或更高版本中有一种简单的方法可以做到这一点:
[self.textView checkTextInDocument:nil];
Run Code Online (Sandbox Code Playgroud)
根据视图的设置方式,这可能不仅仅是添加链接 - 例如它可以添加智能引号.您可以使用它setEnabledTextCheckingTypes:
来指定要检查的内容.在我的情况下,我希望在键入时启用智能引号,但是当我以编程方式更改文本时,我不希望它们被添加.所以我可以使用这样的东西:
NSTextCheckingTypes oldTypes = self.textView.enabledTextCheckingTypes;
[self.textView setEnabledTextCheckingTypes:NSTextCheckingTypeLink];
[self.textView checkTextInDocument:nil];
[self.textView setEnabledTextCheckingTypes:oldTypes];
Run Code Online (Sandbox Code Playgroud)
这将在添加链接后将字段返回到先前的行为.
归档时间: |
|
查看次数: |
2103 次 |
最近记录: |