我希望在NSTextView中有一个带属性的字符串。属性字符串有3行,每行都有不同的颜色,并且没有下划线。我希望能够点击(或双击)每一行,这将打印出行号。
发布于 2011-06-10 20:13:45
您可以使用NSMutableAttributeString的addAttribute:value:range将单击行为分配给属性字符串。
根据文档:Attributed String。当您的字符串被单击时,它应该调用TextView类的clickedOnLink:atIndex:或TextView委托中的textView:clickedOnLink:atIndex:。
就像这样(在浏览器上编码,注意错误)
NSMutableAttributedString* str = [[NSMutableAttributedString alloc] initWithString: @"Clickable String"];
NSRange range = NSMakeRange(0, [str length]);
[str beginEditing];
[str addAttribute:NSLinkAttributeName value:@"The value of your attr String" range:range];
[str endEditing];
[textBox setAllowsEditingTextAttributes: YES];
[textBox setSelectable: YES];
[textBox setAttributedStringValue: str];https://stackoverflow.com/questions/6303485
复制相似问题