7

我想要的只是在我的 viewController 中显示一些简单的文本并自动解析超链接。当用户单击链接时,我希望控件以某种方式进行回调,我可以在其中对 URL 执行某些操作。我怎样才能做到这一点?

我已经浏览了 TTCalog 几个小时。我还尝试查看three20的源代码以及查看堆栈跟踪。没有帮助。我只是不知道我的应用程序如何对 URL 的点击做出反应。请问有什么提示吗?

4

2 回答 2

11

在没有看到您已经尝试过的情况下很难提供帮助,但是您应该能够执行以下操作:

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];

然后,您可以使用TTNavigatorTTURLMap映射custom-uri://some/url到应用程序中的特定控制器,或在应用程序委托中自己处理它。了解如何执行此操作的最佳位置是查看TTNavigatorDemoThree20 源代码中包含的示例应用程序。具体来说,查看AppDelegate.m,这是执行所有 URL 映射的地方。

于 2009-07-23T15:10:23.530 回答
0

除了 Nathan 所说的 URL 映射和链接之外,您还可以使用 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];

然后在你的 StyleSheet.m 实现

- (TTStyle*) redText {
  return [TTTextStyle styleWithFont:[UIFont systemFontOfSize:12] color:RGBCOLOR(255,0,0) next:nil];
}
于 2013-01-30T06:04:59.590 回答