MonoTouch TTStyledTextLabel链接和TTNavigator

时间:2012-07-25 04:03:11

标签: xamarin.ios three20

我正在尝试回复TTStyledTextLabel上的链接点击。

我的印象是我必须为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 个答案:

答案 0 :(得分: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;
    }

现在,您的代表将在点击链接时触发