2010-02-03 91 views
2

嘗試進行簡單的鏈接點擊活動工作。我認爲我理解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水龍頭。)

回答

0

嘗試設置窗口屬性:

TTNavigator* navigator = [TTNavigator navigator]; 
navigator.window = window; 

如果你沒有一個你可以添加一個

navigator.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] 

您可能還需要:

[navigator.window makeKeyAndVisible];