首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MonoTouch TTStyledTextLabel链接和TTNavigator

MonoTouch TTStyledTextLabel链接和TTNavigator
EN

Stack Overflow用户
提问于 2012-07-25 12:03:11
回答 1查看 124关注 0票数 1

我正在尝试响应TTStyledTextLabel上的链接点击。

我的印象是,由于我在互联网上读到的内容,我必须为TTNavigator创建一个委托。

我的AppDelegate.cs里有这个

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

但这根本不是对新闻代表的回应

代码语言:javascript
复制
    public class NewsDelegate : TTNavigatorDelegate
    {
        public override bool Navigator (TTNavigator navigator, NSUrl URL)
        {
            return false;
        }
    }

那里的断点没有触发

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-26 05:14:44

好吧,这个让我抓狂了很长一段时间。我尝试了一百万种方法,将标签子类化,将其转换为c#,等等,最终我找到了解决方案。

您必须编辑绑定(我提交了更改,但在我编写它时它还不在其中)。

代码语言:javascript
复制
[BaseType (typeof (NSObject))]
interface TTNavigator
{
    [Static, Export("navigator")]
    TTNavigator Navigator {get;set;}
...

此静态函数允许您访问全局导航器。这将允许您的代理触发。运行makefile并上传新的DLL之后(如果还没有的话)。

更新你的AppDelegate.cs

代码语言:javascript
复制
    public override bool FinishedLaunching (UIApplication application, NSDictionary launchOptions)
    {
        _navigator= TTNavigator.Navigator;
        _navigator.Delegate = new NewsDelegate();
        return true;
    }

现在您的代理将在单击链接时触发

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11642524

复制
相关文章

相似问题

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