2009-07-23 36 views
7

Tất cả những gì tôi muốn là hiển thị một số văn bản đơn giản trong viewController của tôi và có siêu liên kết autoparsed. Khi người dùng nhấp vào liên kết tôi muốn điều khiển bằng cách nào đó thực hiện một cuộc gọi lại nơi tôi có thể làm điều gì đó với URL. Làm thế nào tôi có thể đạt được điều này?Chỉ cần làm thế nào để bạn sử dụng TTStyledTextLabel?

Tôi đã xem qua TTCatalog trong nhiều giờ. Tôi cũng đã thử nhìn vào mã nguồn của ba20 cũng như nhìn vào dấu vết ngăn xếp. Không giúp đỡ. Tôi chỉ không thể tìm ra cách ứng dụng của tôi có thể phản ứng với nhấp chuột của URL. Bất kỳ gợi ý xin vui lòng?

+1

Tại sao bạn không sử dụng UIWebView? Khi bạn nhấp vào liên kết trong webView, UIWebViewDelegate nhận được thông báo shouldStartLoadWithRequest – oxigen

Trả lời

11

cứng để giúp mà không nhìn thấy những gì bạn đã cố gắng, nhưng bạn sẽ có thể làm điều gì đó như sau:

TTStyledTextLabel* label = [[[TTStyledTextLabel alloc] 
     initWithFrame:someFrame] autorelease]; 
NSString* labelText = @"This should <a href=\"custom-uri://some/url\">work</a>"; 
label.text = [TTStyledText textFromXHTML:labelText lineBreaks:NO URLs:YES]; 
[someView addSubview:label]; 

Sau đó, bạn có thể sử dụng TTNavigatorTTURLMap để lập bản đồ custom-uri://some/url để một bộ điều khiển đặc biệt trong ứng dụng của bạn hoặc tự xử lý nó trong ủy nhiệm ứng dụng của bạn. Nơi tốt nhất để tìm hiểu làm thế nào để làm điều đó là bằng cách xem ứng dụng mẫu TTNavigatorDemo được bao gồm trong nguồn Ba20. Cụ thể, hãy xem AppDelegate.m là nơi tất cả các ánh xạ URL được thực hiện.

+0

Bắt đầu tuyệt vời! Bạn có thể đưa ra một ví dụ ngắn gọn về cách sử dụng TTNavigator và TTURLMap để nói đẩy một bộ điều khiển khi URL được nhấp không? – erotsppa

+0

Tôi đã cập nhật câu trả lời để chỉ cho bạn đúng hướng để tìm hiểu cách hoạt động của công cụ lập bản đồ URL. –

+0

Hệ thống ánh xạ url này sẽ không hoạt động cho câu hỏi này, đúng không? Có vẻ như url phải được cài sẵn bởi nhà phát triển và không hoạt động với văn bản do người dùng cung cấp. Tôi muốn TTStyledTextLabel hiển thị một số văn bản từ người dùng và có tất cả các siêu liên kết được phân tích cú pháp và thực hiện một hành động tương tự khi được nhấp vào – erotsppa

0

Ngoài những gì Nathan nói về ánh xạ URL và liên kết, bạn cũng có thể sử dụng các kiểu CSS!

TTStyledTextLabel* label = [[[TTStyledTextLabel alloc] initWithFrame:someFrame] autorelease]; 
NSString* labelText = @"This should <a href=\"custom-uri://some/url\">work</a> and 
<span class=\"redText\">this should be red</span>"; 
label.text = [TTStyledText textFromXHTML:labelText lineBreaks:NO URLs:YES]; 
[someView addSubview:label]; 

Sau đó, trong StyleSheet.m của bạn thực hiện

- (TTStyle*) redText { 
    return [TTTextStyle styleWithFont:[UIFont systemFontOfSize:12] color:RGBCOLOR(255,0,0) next:nil]; 
} 
Các vấn đề liên quan