2012-04-02 4 views
0

을 사용하여 일부 링크를 표시하기 위해 에 NSAttributedString을 사용하고 있습니다. 나는 의 setLinkTextAttributes: 방법을 사용하여 해당 링크의 스타일을 지정합니다. 그러나 사용자가 링크를 클릭 할 때 시각적 인 피드백을주고 싶습니다. 예를 들어 사용자가 마우스 왼쪽 버튼을 누른 상태에서 링크의 색상을 변경합니다. 쉽게 할 수있는 방법이 있습니까, 아니면 NSTextAttachment을 사용해야합니까?NSTextView 및 하이 라이팅 링크

+0

항상 'WebView'를 대신 사용할 수 있습니다. 그런 다음 원하는대로 링크의 스타일을 지정할 수 있습니다. –

+0

동시에 여러 개의 'NSTextView'가 표시되므로 성능상의 이유로 'WebView'를 사용하고 싶지 않습니다. – mplappert

답변

3

mouseDown 이벤트에서 발생 시키려면이 작업을 수행하는 쉬운 방법이 없다고 생각합니다. 클릭이 완료 될 때까지 기다릴 수 있으면 textView : clickedOnLink : atIndex : 텍스트보기 대리인 메소드를 사용하여 클릭 한 링크의 색인을 가져올 수 있습니다. 그런 다음 해당 인덱스를 사용하여 텍스트 저장 메소드 인 attributesAtIndex : effectiveRange : 링크 범위를 가져오고 마지막으로 setAttributes : range :를 사용하여 링크의 속성에 원하는대로 변경하십시오.

정말로 mouseDown에서 수행해야하는 경우 텍스트보기를 서브 클래스로 만들고 mouseDown을 무시하고 characterIndexForPoint와 같은 것을 사용할 수 있습니다 : 링크를 클릭했는지 위와 같이 응답했는지 확인하려면 .