我在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
它对我有用。