UITextView (UIDataDetectorTypeLink) 中的电子邮件地址在应用程序内打开



我在UITextView中有一个电子邮件地址(使用UIDataDetectorTypes检测到),该地址在应用程序内打开邮件编辑器(如MFMailComposeViewController),而不是打开默认的邮件应用程序本身。

self.textView.dataDetectorTypes = UIDataDetectorTypeLink;
// ...
self.textView.text = @"Blah blah email@address.com blah blah";

我的印象是,默认情况下,电子邮件地址和其他链接将在外部应用程序中打开,而不是在应用程序本身中打开。是否有确定这一点的设置?这样做的问题是邮件编辑器不适合应用程序的布局,并且发送和取消按钮是隐藏的(在iOS 7中),但无论哪种方式,我都希望打开邮件应用程序。

这发生在iOS 6和7上,都在模拟器中的设备上。在iOS 5设备上,它按我的预期工作(邮件应用程序已打开)。

运行我自己的一些测试,似乎我们无法控制如何处理检测到的值。您也无法创建自定义检测器,但可以伪造它:https://stackoverflow.com/a/2433763/143225

作为参考(虽然不是您问题的答案),您可以像这样打开邮件应用程序:

[UIApplication sharedApplication] openUrl:[NSURL URLWithString:@"mailto:email@address.com"]

邮件网址方案:https://developer.apple.com/library/ios/featuredarticles/iPhoneURLScheme_Reference/MailLinks/MailLinks.html#//apple_ref/doc/uid/TP40007899-CH4-SW1

打开网址:https://developer.apple.com/library/ios/documentation/uikit/reference/UIApplication_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40006728-CH3-SW14

邮件很多,很森。

也许这篇文章会对你有所帮助:

它允许在单击文本视图邮件地址时启动自定义电子邮件视图

https://stackoverflow.com/a/31167489/3593801

它对我有用。

相关内容

最新更新