我正在尝试回复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;
}
}
那里的断点没有触发
答案 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;
}
现在,您的代表将在点击链接时触发