我正在尝试响应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;
}
}那里的断点没有触发
发布于 2012-07-26 05:14:44
好吧,这个让我抓狂了很长一段时间。我尝试了一百万种方法,将标签子类化,将其转换为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;
}现在您的代理将在单击链接时触发
https://stackoverflow.com/questions/11642524
复制相似问题