在NSTextField中实现超链接

工作上要实现一个效果,在app中提供一个超链接。 先按照了最近简单的思路做,填一个NSMutableAttributedString进去

- (void)setHyperlink:(NSString *)text inField:(NSTextField *)field
{
	NSURL *link = [[NSURL alloc] initWithString:[NSString stringWithFormat:@"mailto:%@",text]];

	NSMutableAttributedString* attrString = [[NSMutableAttributedString alloc] initWithString:text];
	NSRange range = NSMakeRange(0, [attrString length]);

	[attrString beginEditing];
	[attrString addAttribute:NSLinkAttributeName value:link range:range];
	[attrString addAttribute:NSForegroundColorAttributeName value:[NSColor blueColor] range:range];
	[attrString addAttribute:NSUnderlineStyleAttributeName value:[NSNumber numberWithInt:NSSingleUnderlineStyle] range:range];
	[attrString endEditing];

	[field setAllowsEditingTextAttributes:YES];
	[field setSelectable:YES];
	[field setAttributedStringValue:attrString];
}

结果表现效果不很理想。 然后在stack overflow中查到一个apple的官方QA

吃完饭后回来看上面提到的官方QA,结果。。就是我上面的实现方式。。好吧。。就这样吧。。

发布于: February 03 2013

blog comments powered by Disqus