2010-04-03 28 views
5

我使用这个类创建链接(是吗?)http://www.nightproductions.net/references/dsclickableurltextfield_reference.html#setAttributedStringValue试图用的NSTextField

实现可点击文本框。我已经导入了头文件在我的控制器类并将它归咎于这样

NSAttributedString* str = [[NSAttributedString alloc] initWithString:@"http://www.yahoo.com"]; 
[url setAttributedStringValue:(NSAttributedString *)str]; 

[str release]; 

的文本字段的字符串值是不可选择的,不能编辑。

设置了文本字段值,但它不可点击,也不是链接。

在此先感谢。

+0

添加可可标签。 – hallski 2010-04-07 14:07:04

回答

9

我发现了另一种显示NSTextField中链接的简单方法。你可以使用HTML。下面是一个简单的例子:

-(NSAttributedString *)stringFromHTML:(NSString *)html withFont:(NSFont *)font 
{ 
    if (!font) font = [NSFont systemFontOfSize:0.0]; // Default font 
    html = [NSString stringWithFormat:@"<span style=\"font-family:'%@'; font-size:%dpx;\">%@</span>", [font fontName], (int)[font pointSize], html]; 
    NSData *data = [html dataUsingEncoding:NSUTF8StringEncoding]; 
    NSAttributedString* string = [[NSAttributedString alloc] initWithHTML:data documentAttributes:nil]; 
    return string; 
} 

现在,您可以拨打文本字段的方法:

// @property IBOutlet NSTextField *tf; 
[tf setAllowsEditingTextAttributes: YES]; 
[tf setSelectable:YES]; 
NSString *credits = @"Visit our <a href=\"http://www.webpage.com\">webpage</a>"; 
[tf setAttributedStringValue:[self stringFromHTML:credits withFont:[tf font]]]; 
+0

这样做更好,因为光标变为手指光标,而用另一种方法点击时字体会改变。 – 2014-06-30 20:06:28