2010-01-25 8 views
5

Der Text, den ich in einem NSTextField verwende, wird wie folgt aus einer Datei geladen.Warum werden Hyperlinks manchmal nicht in einem NSTextField mit einem NSAtributedString angezeigt?

NSString *path = [[NSBundle mainBundle] pathForResource:@"Credits" ofType:@"rtf"]; 
NSAttributedString *as = [[NSAttributedString alloc] initWithPath:path documentAttributes:NULL]; 
[creditsLabel setAttributedStringValue:as]; 
[creditsLabel becomeFirstResponder]; 

Die Hyperlinks im Render-Fenster nicht in blau unterstrichenen, wenn ich auf dem NSTextField zuerst irgendwo klicken, nach den beiden Screenshots.

Wie kann ich diese Hyperlinks immer wie Hyperlinks aussehen lassen?

Hier ist der RTF:

{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf250 
{\fonttbl\f0\fnil\fcharset0 LucidaGrande;} 
{\colortbl;\red255\green255\blue255;} 
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural\pardirnatural 

\f0\fs24 \cf0 Copyright \'a9 2009-2010 Fully Functional Software.\ 
All rights reserved.\ 
\ 
BlazingStars is made possible by {\field{\*\fldinst{HYPERLINK "http://www.iterasi.net/openviewer.aspx?sqrlitid=p4mjpt7nl02tyjl08_ctaa"}}{\fldrslt DBPrefsWindowController}}, {\field{\*\fldinst{HYPERLINK "http://mattgemmell.com/source"}}{\fldrslt Image Crop}}, {\field{\*\fldinst{HYPERLINK "http://code.google.com/p/tesseract-ocr/"}}{\fldrslt Tesseract-OCR}}, {\field{\*\fldinst{HYPERLINK "http://andymatuschak.org/articles/2005/12/18/help-with-apple-help"}}{\fldrslt Andy's Help Toolkit}}, and {\field{\*\fldinst{HYPERLINK "http://wafflesoftware.net/shortcut/"}}{\fldrslt Shortcut Recorder}}.\ 
\ 
Includes icons from the BlueCons set by {\field{\*\fldinst{HYPERLINK "http://www.mouserunner.com"}}{\fldrslt Ken Saunders}}.} 

alt text http://pokercopilot.com/stuff/stackoverflow/screenshot2.png

alt text http://pokercopilot.com/stuff/stackoverflow/screenshot1.png

+0

Können Sie uns die Credits.rtf zeigen? – diederikh

+0

@Diederik, Fertig. Ich habe die Frage bearbeitet, um die RTF einzuschließen. –

Antwort

6

Sie können die Links zu erhalten, um wie Links zu suchen, indem sie auf diese Weise in der RTF-Styling, aber das Textfeld keine Klicks umgehen, wenn Sie die Bearbeitung von Text-Attribute und Auswählen von Text ermöglichen. (Quelle für beide Behauptungen: QA1487.) Ich sehe in Ihrem Kommentar die Antwort von Diederik Hoogenboom, dass Sie den letzten Teil bereits getan haben, also müssen Sie jetzt nur noch blau streichen und im gesamten RTF unterstreichen. statt eines Textfeldes

wäre eine andere Lösung sein, eine Textansicht zu verwenden.

würde eine dritte Lösung zu verwenden DSClickableTextField sein.

+0

Die RTF hat bereits die Hyperlinks. Das Problem ist, dass die Hyperlinks nur blau und unterstreichen, wenn Sie auf das NSTextField klicken. –

+0

Das ist nicht, worüber ich sprach. "** ** aussehen ** Links von ** styling sie so ** in der RTF ": dh, machen Sie die Links blau und unterstrichen in der RTF. –

+0

Bingo! Manuelles Styling der Links als blau und unterstreichen tat es. –

2

Stellen Sie sicher, Sie setzen [creditsLabel setAllowsEditingTextAttributes: YES], sonst werden die Links nicht angeklickt werden.

+0

In Interface Builder hatte ich dies bereits eingestellt, und die Links waren anklickbar. Aber nur für den Fall, ich habe die Zeile manuell hinzugefügt. Es behebt das Problem nicht. :-( –

Verwandte Themen