【发布时间】:2014-02-15 23:14:57
【问题描述】:
我正在尝试设置我的应用程序,以便可以将 NSUrl 属性添加到 textview 的指定子字符串,当触摸该 NSUrl 时,它会推送一个新视图而不是打开一个新 url。
我在我的 AppDelegate.cs 类中覆盖 OpenURL,并使用 url 发送通知
public override bool OpenUrl (UIApplication application, NSUrl url, string sourceApplication, NSObject annotation)
{
NSNotificationCenter.DefaultCenter.PostNotification (NSNotification.FromName ("ArtistDetail", url));
return true;
}
然后在包含文本视图的类中,在构造函数中添加观察者
NSNotificationCenter.DefaultCenter.AddObserver ("ArtistDetail", delegate{artistDetail(null);});
还有我的方法
public void artistDetail (NSNotification notification)
{
//push view based on info in notification.object
}
我没有运气。我发现这篇文章Can't push view controller after overriding openURL 有人在目标 C 中以同样的方式做到了这一点。一个问题 - 我在我的 OpenURL 覆盖中放置了断点和日志注释,但它们没有被命中。当您单击/点击一个 NSSUrl 时,它是否默认调用 OpenUrl?如果是这样,为什么我的覆盖没有被击中?
【问题讨论】:
-
@JiaYow 我的问题不是如何将 URL 添加到 textview。我的问题是如何在触摸 URL 时动态处理它
-
我链接的问题有一个答案,可以解释为什么你的 OpenUrl 没有被调用。
-
@JiaYow 我的链接显示出来并且是可点击的——如果链接是常规超链接,它甚至会按预期工作——但是,它不会通过我重写的 OpenUrl 方法。
-
您的 Xamarin 版本怎么样?我用谷歌搜索了一下,发现了这个:forums.xamarin.com/discussion/12306/openurl-not-being-called - 也许你有同样的问题?
标签: ios xamarin.ios