Cocoa 在文本控件中插入超链接的正确方法
全部, 我正在寻找一种将超链接正确插入NSTextView的方法 试图做到这一点,我找到了解释如何使其工作的链接。但是,尝试设置以下文本:Cocoa 在文本控件中插入超链接的正确方法,cocoa,hyperlink,nstextview,Cocoa,Hyperlink,Nstextview,全部, 我正在寻找一种将超链接正确插入NSTextView的方法 试图做到这一点,我找到了解释如何使其工作的链接。但是,尝试设置以下文本: abchttp://www.google.com 我无法使用以下代码执行此操作: std::string test = "abc \"http://www.google.com\""; int pos1 = test.find( "http://" ); std::string temp1 = test.substr( 0, pos1 ); [tv setS
abchttp://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];
但是,下划线和蓝色前景从文本的第一个位置开始,即整个文本都有下划线,而不仅仅是链接
所以进一步看,我发现我可以做的很简单。但是,无论是设置上面的字符串,还是尝试键入链接,都不能给出链接的适当可见表示形式-蓝色和下划线字体
现在我的问题是:
当我手动设置文本并键入文本时,是否可以在NSTextView中自动解析超链接?
如果没有,上面的代码有什么问题?为什么我看到的是所有字符串上的链接,而不仅仅是链接的文本
我希望我不需要做任何手工工作,一切都是自动的
感谢您并为这么大的帖子感到抱歉。如果您键入一个链接,然后键入一个空格,那么自动链接检测是否有效?@Willeke,它应该以“www”或“”开头?@Willeke,它应该以“www”或“”开头吗?好的,我只是试着键入“www.google.com”或“”。什么也没发生。文本保持为文本,但未成为链接。文件上说是10.5+我现在是10.6。。。抱歉,5分钟已过期。;-)如果以编程方式打开xib中的“智能链接”或打开“automaticLinkDetectionEnabled”,则应检测键入的链接。可以使用NSTextView的某个checkTextIn…方法检测以编程方式插入的链接。@Willeke,yes,就是这样做的,它可以工作。苹果公司的文件很烂…;-)