문제

나는 귀속 된 현을 사용하고 싶습니다 NSLinkAttributeName a 내부에서 클릭 가능한 링크를 생성합니다 UILabel iOS 7 프로젝트 내 인스턴스는 외부 라이브러리를 사용하지 않고 마침내 가능합니다.

NSURL *url = [NSURL URLWithString:@"http://www.google.com"];

NSDictionary *attr = [NSDictionary dictionaryWithObjectsAndKeys:
                          url, NSLinkAttributeName, nil];

문자열에 속성을 적용하면 텍스트가 파란색으로 표시되고 밑줄이 표시되지만 클릭/탭에서는 아무 일도 일어나지 않습니다. 레이블에 대한 사용자 상호 작용이 활성화되어 있습니다. 이 작업을 수행하는 방법을 아는 사람이 있습니까? 감사!

도움이 되었습니까?

해결책

나는 지금 내 자신의 질문에 대답 할 수있다 : 나는 UITextView 대신에 UILabel 지금. 나는 포맷했다 UITextView 내 레이블처럼보고 행동하고 추가합니다.

UITextView *textView = [[UITextView alloc] init];
textView.scrollEnabled = NO;
textView.editable = NO;
textView.textContainer.lineFragmentPadding = 0;
textView.textContainerInset = UIEdgeInsetsMake(0, 0, 0, 0);
textView.delegate = self;

대의원을 설정하는 것을 잊지 마십시오. 구현해야합니다. UITextViewDelegate! 이제 우리는 대의원 방법을 구현합니다.

- (BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)url inRange:(NSRange)characterRange
{
     return YES;
}

이것은 자동으로 제공된 것을 엽니 다 NSURL-클릭/탭에서 내 질문에서 귀속 된 문자열에서 내전.

기억하십시오 : 이것은 iOS 7에서만 작동합니다. 레거시 지원을 위해 외부 라이브러리가 필요합니다.

업데이트:

만들기 UITextViewS는 라벨이 결국 완전히 엉망인 것처럼 행동하고 나는 끔찍한 iOS-behaviours를 우연히 발견했습니다. 나는 결국 그것을 사용했다 tttattriptedLabel 단순히 훌륭하고 대신 라벨을 사용할 수있는 도서관 UITextView에스.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top