【问题标题】:MonoTouch TTStyledTextLabel links and TTNavigatorMonoTouch TTStyledTextLabel 链接和 TTNavigator
【发布时间】:2012-07-25 04:03:10
【问题描述】:

我正在尝试响应 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;
        }
    }

那里的断点没有触发

【问题讨论】:

    标签: xamarin.ios three20


    【解决方案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;
        }
    

    现在你的代理会在点击链接时触发

    【讨论】:

      猜你喜欢
      • 2011-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多