首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在TTStyledTextLabels中单击链接时,TTNavigator不打开URL

在TTStyledTextLabels中单击链接时,TTNavigator不打开URL
EN

Stack Overflow用户
提问于 2010-02-03 08:29:39
回答 1查看 1.6K关注 0票数 2

尝试让一个简单的链接点击活动起作用。我想我能理解TTNavigator和TTStyledLabel,但是我不能让它工作。

代码:

代码语言:javascript
复制
@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

即在视图控制器中,获取导航器并将self设置为它的代理。当一个链接被打开时,URL方法被调用,我将自己处理打开的shouldOpenURL。(我计划让navigator处理更多的问题,但我想先让这个简单的例子工作。)

我在viewDidLoad的末尾有一个测试调用:它可以很好地触发委托方法。

问题:我看到使用URL-s可以很好地呈现styledTextLabels,但是当我点击它们时,什么也没有发生。由于某种原因,它们不能到达TTNavigator,我不明白为什么。感觉像是我错过了一些简单的连接/脚手架,但又搞不清楚。

如何使在styledtextlabel中点击的链接到达导航器代理?或者我应该如何用styledtextlabel实现这个简单的例子呢?(只想获得url点击的回调。)

EN

回答 1

Stack Overflow用户

发布于 2010-02-18 03:05:51

尝试设置窗口属性:

代码语言:javascript
复制
TTNavigator* navigator = [TTNavigator navigator];
navigator.window = window;

如果你没有,你可以添加一个

代码语言:javascript
复制
navigator.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]

您可能还需要:

代码语言:javascript
复制
[navigator.window makeKeyAndVisible];
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2188841

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档