2012-07-25 49 views
1

我正在嘗試響應TTStyledTextLabel上的鏈接點擊。MonoTouch TTStyledTextLabel鏈接和TTNavigator

我的印象是,我必須爲TTNavigator創建一個委託,因爲我在互聯網上閱讀過的內容。

我有這個在我的AppDelegate.cs

public override bool FinishedLaunching (UIApplication application, NSDictionary launchOptions) 
{ 
    _navigator = new TTNavigator(); 
    _navigator.Delegate = new NewsDelegate(); 
    _navigator.Window = Window; 
    var map = _navigator.URLMap; 
    map.FromToViewController("*", (new MainController()).ClassHandle); 
    return true; 
} 

但是,這是不是在所有

public class NewsDelegate : TTNavigatorDelegate 
    { 
     public override bool Navigator (TTNavigator navigator, NSUrl URL) 
     { 
      return false; 
     } 
    } 

響應新聞代表的斷點有沒有觸發

回答

1

確定這一個相當長一段時間,把我打瘋了。我嘗試了一百萬件事情,繼承了標籤,將其轉換爲C#等。我終於找到了解決方案。

你必須編輯綁定(我承諾改變,但它並不在我的寫作中)。

[BaseType (typeof (NSObject))] 
interface TTNavigator 
{ 
    [Static, Export("navigator")] 
    TTNavigator Navigator {get;set;} 
... 

這個靜態函數允許你訪問全局導航器。這將允許您的代表發射。運行makefile並上傳新的DLL(如果它尚未在那裏)。

更新您的AppDelegate.cs

public override bool FinishedLaunching (UIApplication application, NSDictionary launchOptions) 
    { 
     _navigator= TTNavigator.Navigator; 
     _navigator.Delegate = new NewsDelegate(); 
     return true; 
    } 

現在,當點擊一個鏈接

您的代理會火