在文本控件中插入超链接的正确方法

时间:2015-09-07 18:17:30

标签: cocoa hyperlink nstextview

ALL,

我正在寻找一种方法来正确地将超链接插入NSTextView。

尝试这样做我找到this链接,解释了如何使其工作。但是尝试设置以下文本:

abc http://www.google.com

我没有使用以下代码执行此操作:

std::string test = "abc \"http://www.google.com\"";
int pos1 = test.find( "http://" );
std::string temp1 = test.substr( 0, pos1 );
[tv setString:temp1];
std::string url_text = test.substr( pos1 );
NSMutableAttributedString string = [[NSMutableAttributedString alloc] init];
NSURL *url_obj = [NSURL URLWithString:url];
[string appendAttributedString:[NSAttributedString hyperlinkFromString:url_text withURL:url_obj];
[[tv textStorage] setAttributedString: string];
[string release];

然而,下划线和蓝色前景从文本的第一个位置开始,即整个文本加下划线,而不仅仅是一个链接。

因此,我发现我可以简单地做this。但是既没有设置上面的字符串,也没有尝试键入链接,我给出了链接的适当可见表示 - 蓝色和带下划线的字体。

所以现在我的问题是:

当我设置文本并手动输入文本时,是否可以在NSTextView中自动解析超链接? 如果没有,上面的代码有什么问题,为什么我看到所有字符串上的链接,而不仅仅是链接的文本?

我希望我不需要做任何手工工作,一切都会自动完成。

谢谢你,抱歉这么大的帖子。

0 个答案:

没有答案