2011-06-10 22 views
0

我想在NSTextView有一個歸因字符串。屬性字符串有3行,每行都有不同的顏色和下劃線。我希望能夠在每行上單擊(或雙擊),這將打印出行號。NSAttributedString點擊

回答

3

您可以使用addAttribute:value:range的NSMutableAttributeString範圍將點擊行爲分配給您的屬性字符串。

根據文檔:Attributed String。當你的字符串被點擊時,它應該調用TextView類的clickedOnLink:atIndex:或textView:clickedOnLink:atIndex:在TextView委託中。

這樣的(編碼的瀏覽器,謹防錯誤的)

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]; 
+0

我可以得到一個鏈接的行爲。我的問題是,我需要三條線,三種不同的顏色(我可以使用setLinkTextAttributes :)來改變顏色。當我嘗試你的代碼時,我得到[NSTextView setAllowsEditingTextAttributes:]:無法識別的選擇器發送到實例 – 2011-06-10 13:47:25