TTNavigator点击TTStyledTextLabels中的链接时不能打开URL
问题描述:
尝试进行简单的链接点击活动工作。我认为我理解TTNavigator和TTStyledLabel,但无法使其工作。TTNavigator点击TTStyledTextLabels中的链接时不能打开URL
代码:
一个视图控制器内@interface SomeVc : UIViewController <TTNavigatorDelegate> {
IBOutlet TTStyledTextLabel *styledTextLabel;
}
@end
@implementation SomeVc
- (void)viewDidLoad {
[super viewDidLoad];
navigator = [TTNavigator navigator];
navigator.persistenceMode = TTNavigatorPersistenceModeNone;
navigator.delegate = self;
TTURLMap* map = navigator.URLMap;
[map from:@"*" toViewController:[TTWebController class]];
styledTextLabel.text = [TTStyledText textWithURLs:someText];
[navigator openURLAction:[TTURLAction actionWithURLPath:@"http://www.cnn.com/"]];
}
- (BOOL)navigator: (TTNavigator*)navigator shouldOpenURL: (NSURL*)URL {
NSLog(@"trying to open %@", [URL absoluteString]);
return NO;
}
@end
即,让导航,并设置自己是其代表。当一个链接被打开时,shouldOpenURL delgate方法被调用,我将在那里处理打开我自己的URL。 (我打算让导航员处理更多的问题,但希望得到这个简单的案例工作第一。)
我有一个测试调用在viewDidLoad结束:这将触发委托方法罚款。
问题:我看到styledTextLabels在URL-s下显示正常,但是当我点击这些时,没有任何反应。他们没有达到TTNavigator出于某种原因,我不明白为什么。感觉我在某处丢失了一些简单的连接/脚手架,但无法弄清楚。
如何使其在样式文本标签中点击的链接将到达导航器委托?或者我应该如何使用styledtextlabel实现这个简单的例子? (只是想回调URL水龙头。)
答
尝试设置窗口属性:
TTNavigator* navigator = [TTNavigator navigator];
navigator.window = window;
如果你没有一个你可以添加一个
navigator.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]
您可能还需要:
[navigator.window makeKeyAndVisible];