Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/110.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
Ios 向MFMailComposeViewController添加隐藏的UIITextField_Ios_Swift - Fatal编程技术网

Ios 向MFMailComposeViewController添加隐藏的UIITextField

Ios 向MFMailComposeViewController添加隐藏的UIITextField,ios,swift,Ios,Swift,我试图在我的应用程序上运行一段时间后关闭MFMailComposeViewController上的键盘,为此,我在MFMailComposeViewController上添加了一个计时器和一个隐藏的文本字段,一旦计时器触发,我关闭键盘,苹果在app store上拒绝应用程序会有问题吗 代码 导入基础 导入UIKit 导入消息用户界面 类mailViewController:UIViewController、MFMailComposeViewController、UITextFieldDelega

我试图在我的应用程序上运行一段时间后关闭MFMailComposeViewController上的键盘,为此,我在MFMailComposeViewController上添加了一个计时器和一个隐藏的文本字段,一旦计时器触发,我关闭键盘,苹果在app store上拒绝应用程序会有问题吗

代码

<代码>导入基础 导入UIKit 导入消息用户界面 类mailViewController:UIViewController、MFMailComposeViewController、UITextFieldDelegate{ @ibextfield:UITextField? 重写func viewDidLoad(){ super.viewDidLoad() self.view.backgroundColor=UIColor.lightGrayColor() //var timer=NSTimer.scheduledTimerWithTimeInterval(4,目标:self,选择器:“dismissKeyBoard”,用户信息:nil,重复:false) 让mailComposeViewController=configuredMailComposeViewController() 如果MFMailComposeViewController.canSendMail(){ TestExtField=UITextField(帧:CGRectMake(0,0,400,400)) testextfield!.delegate=self testextfield!.hidden=true mailComposeViewController.view.addSubview(testextfield!) var timer=NSTimer.scheduledTimerWithTimeInterval(10,目标:self,选择器:“goToHome”,用户信息:nil,重复:false) self.presentViewController(mailComposeViewController,动画:true,完成:nil) }否则{ self.showSendMailErrorAlert() } 让bounds=UIScreen.mainScreen().bounds 让宽度=bounds.size.width 让高度=界限.size.height 设rect=CGRect(x:0,y:0,width:width,height:height); 设testLayer=CustomView(帧:rect) testLayer.backgroundColor=UIColor.clearColor() //mailComposeViewController.view.addSubview(testLayer) //UIWindow*keyWindow=[[UIApplication sharedApplication]keyWindow]; //UIView*firstResponder=[keyWindow性能选择器:@selector(firstResponder)]; //[第一响应者辞职第一响应者]; var keyWindow=UIApplication.sharedApplication().keyWindow //var firstResponder=keyWindow?性能选择器(firstResponder) //第一响应者 } @iAction func sendEmailButtonTapped(发件人:AnyObject){ 让mailComposeViewController=configuredMailComposeViewController() 如果MFMailComposeViewController.canSendMail(){ self.presentViewController(mailComposeViewController,动画:true,完成:nil) }否则{ self.showSendMailErrorAlert() } } func配置了mailcomposeviewcontroller()->MFMailComposeViewController{ 让mailComposerVC=MFMailComposeViewController() mailComposerVC.mailComposeDelegate=self//设置--mailComposeDelegate--property而不是--delegate--property非常重要 MailComposer VC.setToRecipients([“someone@somewhere.com"]) mailComposerVC.setSubject(“向您发送应用程序内电子邮件…”) setMessageBody(“在应用程序中发送电子邮件还不错!”,isHTML:false) 返回邮件 } func showSendMailErrorAlert(){ 让sendMailErrorAlert=UIAlertView(标题:“无法发送电子邮件”,消息:“您的设备无法发送电子邮件。请检查电子邮件配置并重试。”,代表:自我,取消按钮提示:“确定”) sendMailErrorAlert.show() } //标记:MFMAILCOMPOSEVIEWCONTROLLEDELEGATE方法 func mailComposeController(控制器:MFMailComposeViewController!,完成时结果:MFMailComposeResult,错误:NSError!){ controller.dismissViewControllerAnimated(true,完成:nil) } 重写函数didReceiveMemoryWarning(){ 超级。我收到了记忆警告() //处置所有可以重新创建的资源。 } 覆盖功能触摸开始(触摸:设置,withEvent事件:UIEvent?){ 打印(“内部邮件生成器视图”) } func键盘(){ 打印(“立即关闭键盘…” } 覆盖func VIEWDID消失(动画:Bool){ 打印(“视图确实消失了,被调用了!!!!”) } func goToHome(){ 打印(“计时器结束”) //var goToHome=ViewController() //self.presentViewController(goToHome,动画:true,完成:nil) TentextField?.becomeFirstResponder() TestExtField?.resignFirstResponder()辞职 } } 不,你的代码看起来很清楚,我认为这样对苹果来说没有问题

您还可以在此处查看有关常见拒绝问题的更多信息;

祝你好运

不,你的代码看起来很清楚,我认为这样对苹果来说没有问题

您还可以在此处查看有关常见拒绝问题的更多信息;


祝你好运

下面的行可能有问题。因为这可能违反了苹果的指导方针

mailComposeViewController.view.addSubview(tempTextField!)
您不能添加任何控制器,也不能向其中添加任何子视图 MFMailComposeViewController


根据苹果指南,在用户允许或完成过程之前,应用程序不应中断用户过程/任务。

这可能是因为下面的一行有问题。因为这可能违反了苹果的指导方针

mailComposeViewController.view.addSubview(tempTextField!)
您不能添加任何控制器,也不能向其中添加任何子视图 MFMailComposeViewController


根据苹果指南,在用户允许或完成该过程之前,应用程序不应中断用户进程/任务。

如果用户已登录……并且在mailComposeViewController上长时间保持理想状态,并且自动超时,该怎么办?并被重定向到登录屏幕?在这种情况下,您可能必须找到其他方式来实现邮件功能。您可以通过像MFMailComposeViewController一样定制UI来尝试使用Web服务。因为根据苹果的指导方针,它可能不允许这种方式。。!!!如果用户已登录…并且在mailComposeViewContr上保持理想状态,该怎么办