2010-01-25 4 views
5

NSTextField에서 사용하는 텍스트는 다음과 같이 파일에서로드됩니다. 내가 처음이 스크린 샷에 따라의 NSTextField있는 어딘가에 클릭하지 않는하이퍼 링크가 NSAttributedString이있는 NSTextField에 표시되지 않는 이유는 무엇입니까?

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

창에 하이퍼 링크가 파란색 밑줄에 렌더링하지 않습니다.

하이퍼 링크가 하이퍼 링크처럼 보이게하려면 어떻게해야합니까?

{\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

Credits.rtf를 표시 할 수 있습니까? – diederikh

+0

@Diederik, 완료. RTF를 포함하도록 질문을 편집했습니다. –

답변

6

링크를 RTF 에서처럼 스타일을 지정하여 링크처럼 보이게 할 수 있지만 텍스트 속성 편집 및 텍스트 선택을 활성화하지 않는 한 텍스트 필드는 클릭을 처리하지 않습니다. (두 주장에 대한 출처 : QA1487.) Diederik Hoogenboom의 답변에 대한 귀하의 의견에 이미 마지막 부분을 작성 했으므로 이제해야 할 일은 모두 RTF 전체에 파란색과 밑줄을 뿌리는 것입니다.

다른 해결책은 텍스트 필드 대신 텍스트보기를 사용하는 것입니다.

세 번째 해결 방법은 DSClickableTextField입니다.

+0

RTF에 이미 하이퍼 링크가 있습니다. NSTextField를 클릭하면 하이퍼 링크가 파란색과 밑줄로만 표시됩니다. –

+0

그건 내가 말한 것이 아닙니다. "** ** ** 링크로보기 ** ** RTF에서 그런 식으로 스타일을 지정하십시오. "즉, 링크를 파란색으로 만들고 RTF에 밑줄을 그어주십시오. –

+0

빙고를 수동으로 파란색과 밑줄로 스타일을 지정했습니다. –

2

당신이 그렇지 않으면 링크를 클릭 할 수 없습니다, [creditsLabel setAllowsEditingTextAttributes: YES]을 설정해야합니다 :

다음은 RTF입니다.

+0

Interface Builder에서 나는 이것을 사실로 설정했고 링크를 클릭 할 수있었습니다. 하지만 경우에 따라 수동으로 추가했습니다. 문제를 해결하지는 못합니다. :-( –

관련 문제