Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 如何从dataDetectorTypeLink设置电子邮件主题?_Objective C_Ios_Uitextfield_Datadetectortypes - Fatal编程技术网

Objective c 如何从dataDetectorTypeLink设置电子邮件主题?

Objective c 如何从dataDetectorTypeLink设置电子邮件主题?,objective-c,ios,uitextfield,datadetectortypes,Objective C,Ios,Uitextfield,Datadetectortypes,在UITextView的文本中,我有一个电子邮件地址,dataDetectorType设置为dataDetectorTypeLink。有没有办法使用此配置设置电子邮件的主题行?我知道如何使用MFMailComposeController设置电子邮件的主题行,但有没有办法将其与dataDetectorType结合起来 编辑:以下是我在我的应用程序代理中对“openURL:(NSURL*)url的(重新)定义: -(void)openURL:(NSURL *)url { MFMailComp

UITextView
的文本中,我有一个电子邮件地址,
dataDetectorType
设置为
dataDetectorTypeLink
。有没有办法使用此配置设置电子邮件的主题行?我知道如何使用
MFMailComposeController
设置电子邮件的主题行,但有没有办法将其与
dataDetectorType
结合起来

编辑:以下是我在我的应用程序代理中对“openURL:(NSURL*)url的(重新)定义:

-(void)openURL:(NSURL *)url
{
    MFMailComposeViewController *mailer = [[MFMailComposeViewController alloc] init];
    mailer.mailComposeDelegate = self;
    [mailer setSubject:@"feedback on Gay Haiku"];
    [self presentViewController:mailer animated:YES completion:NULL];
}

但是我得到一个错误,AppDelegate声明选择器
presentViewController:animated:`。

是否尝试将
?subject=
附加到链接

@"mailto:webmaster@site.com?subject=Web Site Extraordinaire"
我刚刚意识到,只有当您切换到
UIWebView
时,才能使用它。。。这是一种选择吗

编辑:


另一种方法是子类化
UIApplication
并重写
openURL:
。这是描述的。

由于这似乎是您控制的固定文本,您可以在电子邮件地址范围内的
NSLinkAttributeName
属性中添加
NSAttributeString
,而不是启用自动链接检测。这将允许您指定在点击链接时希望系统打开的完整URL。然后您可以使用Mundi的建议(URL中包含subject=)设置电子邮件的主题。

非常感谢。我创建了
UIApplication
的子类并包含了代码,但在
if([self.delegate openURL:url])
行中出现了一个错误,该行读取选择器“openURL”的
无已知实例方法
。我做错了什么?(抱歉--我对委托仍然有点糊涂…)您也需要实现委托方法。很抱歉不理解--但我该怎么做呢?我已经添加了
openURL
的(重新)定义。是的,您不能从应用程序委托显示视图控制器-只能从另一个视图控制器。您必须将此消息发送给UIApplication的代理,该代理是视图控制器。也许不那么微不足道,考虑打开一个新问题。