2015-01-12 1 views
1

NSAttributedString을 사용하여 UILabel에서 특정 범위의 탭을 호출 할 objetive-c 액션을 추가하기 만하면됩니다.NSAttributedString에 일반 작업을 추가 하시겠습니까?

하지만 어떻게해야할지 모르겠다. 나는 URL을 열고 싶지 않다. 나는 단지 메서드를 호출하기를 원한다.

감사합니다.

+0

지금까지 시도한 내용은 무엇입니까? 무슨 문제가 있습니까? – rmaddy

+0

기본적인 시작점이 필요한 경우'userInteractionEnabled = YES'를 확인한 다음 UILabel의'hitTest :'를 오버라이드하여 다양한 그려진 범위와 교차하는 지점을 확인하십시오. –

답변

7

이 작업을 위해 NSLinkAttributeName 자체를 사용할 수 있습니다. 아래와 같이 속성이 지정된 문자열을 사용하고 UITextView의 텍스트로 설정하십시오.

NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc]initWithString:termsString]; 
     [attributedString addAttribute:NSLinkAttributeName value:url range:range]; 
[myTextView setAttributedText:attributedString]; 

그리고 다음 UITextView 위임 메소드를 오버라이드 (override) :

-(BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)URL inRange:(NSRange)characterRange{ 

// Call your method here. 
return YES; 
} 

그나마 당신의 텍스트 뷰의 대리자를 설정하는 것을 잊지!

+1

이것이 내가 필요한 것입니다. 감사합니다. –

-2

또한 UITouch와 같은 간단한 투명 UITouch를 만들 수 있습니다. 그것은 당신이 그것을 가짜로 만들 필요가 있음을 의미합니다.

+0

네,하지만 NSAttributedString을 사용하여 방법을 찾고 있다고 생각합니다. – Abu

+0

동적이 아니기 때문에이 방법을 제안하지 않습니다.하지만 실제로 그가 원하는 것에 달려 있습니다. 당신도 옳습니다. –

+0

"단순한 투명한 UITouch와 같은 컨트롤"이 무엇인지와 실제로 어떻게해야 하는지를 명확히하면 더 나은 대답이 될 것입니다. – rmaddy

관련 문제