GVKun编程网logo

objective-c – 如何将焦点设置在MFMailComposeViewController的TO字段上?(将焦点设置到指定的控件或窗体上应采用什么方法)

6

如果您对objective-c–如何将焦点设置在MFMailComposeViewController的TO字段上?和将焦点设置到指定的控件或窗体上应采用什么方法感兴趣,那么这篇文章一定是您不可错过的

如果您对objective-c – 如何将焦点设置在MFMailComposeViewController的TO字段上?将焦点设置到指定的控件或窗体上应采用什么方法感兴趣,那么这篇文章一定是您不可错过的。我们将详细讲解objective-c – 如何将焦点设置在MFMailComposeViewController的TO字段上?的各种细节,并对将焦点设置到指定的控件或窗体上应采用什么方法进行深入的分析,此外还有关于ios – i386架构的未定义符号:“_OBJC_CLASS _ $_ MFMailComposeViewController”、ios – MFMailComposeViewController navigationBar颜色不完全匹配、ios – MFMailComposeViewControllerDelegate不工作Swift 3、ios – MFMailComposeViewController获取电子邮件正文的实用技巧。

本文目录一览:

objective-c – 如何将焦点设置在MFMailComposeViewController的TO字段上?(将焦点设置到指定的控件或窗体上应采用什么方法)

objective-c – 如何将焦点设置在MFMailComposeViewController的TO字段上?(将焦点设置到指定的控件或窗体上应采用什么方法)

我正在使用标准的样板代码来发送带有MFMailComposeViewController的电子邮件,但我找不到关于在TO字段上设置焦点的信息,当控制器显示时可以看到加号按钮,就像它对“本页的邮件链接”这样的功能一样. Safari或地图中的“共享位置”.

MFMailComposeViewController *mailComposer;              
mailComposer = [[MFMailComposeViewController alloc]init];
mailComposer.mailComposeDelegate = self;
[mailComposer setSubject:@"My Subject"];        
[mailComposer setMessageBody:@"This is the body of my message" isHTML:NO];      
[self presentModalViewController:mailComposer animated:YES];
[mailComposer release];

解决方法

您可以查看mailComposer对象的视图:

UIView *v0 = mailComposer.view;
UIView *v1 = [[v0 subviews] objectAtIndex:0]; // UINavigationTransitionView
UIView *v2 = [[v1 subviews] objectAtIndex:0]; // UIViewControllerWrapperView
UIView *v3 = [[v2 subviews] objectAtIndex:0]; // MFMailComposeView
UIView *v4 = [[v3 subviews] objectAtIndex:0]; // UIView
UIView *v5 = [[v4 subviews] objectAtIndex:0]; // MFComposeScrollView
UIView *v6 = [[v5 subviews] objectAtIndex:0]; // UIView
UIView *v7 = [[v6 subviews] objectAtIndex:0]; // MFMailComposeRecipientView
UIView *v8 = [[v7 subviews] objectAtIndex:1]; // _MFMailRecipientTextField

这个v8家伙就是你想要的人.它是UITextField的子类.让它成为第一响应者.

正式地说,你应该检查子视图的类型而不是第一个或第二个对象.但话说回来,正式你根本不应该这样做,因为这都是无证的,并且可能在未来的iOS版本中破坏.

ios – i386架构的未定义符号:“_OBJC_CLASS _ $_ MFMailComposeViewController”

ios – i386架构的未定义符号:“_OBJC_CLASS _ $_ MFMailComposeViewController”

我使用MFMailComposeViewController在iPhone上创建程序.但是,编译时会发生错误:

Undefined symbols for architecture i386:
   "_OBJC_CLASS_ $_MFMailComposeViewController",Referenced from:
       objc-class-ref in ViewController.o
ld: symbol (s) not found for architecture i386
clang: error: linker command Failed with exit code 1 (use-v to see invocation)

请帮忙,这是什么怎么解决?

提前致谢!

解决方法

您必须向您的项目添加MessageUI.framework框架.

以下是您的操作方法:

>在项目导航器侧栏中选择项目.>单击“构建阶段”选项卡.>展开“使用库链接二进制”部分.>点击”按钮.>从列表中选择“MessageUI.framework”. (您可以使用搜索框找到它).

ios – MFMailComposeViewController navigationBar颜色不完全匹配

我已经尝试了几乎所有存在的解决方案来更改我的MFMailComposeViewController的navigationBar颜色,但它没有显示确切的颜色.

这是我的viewController导航栏颜色:

在定制所有解决方案后,最接近的是:

我的代码中缺少的是什么?请看看.

MFMailComposeViewController *mc = [[MFMailComposeViewController alloc] init];

mc.mailComposeDelegate = self;
[mc.navigationBar setTintColor:[UIColor whiteColor]];
[mc setSubject:[Nsstring stringWithFormat:@"V%@ Support",version]];
[mc setMessageBody:supportText isHTML:NO];
[mc setToRecipients:@[@"ring@ringid.com"]];
[self presentViewController:mc animated:YES completion:NULL];

我尝试过:

mc.navigationBar.translucent = NO;
[mc.navigationBar setTintColor:[UIColor myColor]];
mc.navigationBar.backgroundColor = [UIColor myColor];
UIImage *image = [UIImage imageNamed:@"nav-bar_6_plus.png"];
[mc.navigationBar setBackgroundImage:image forBarMetrics:UIBarMetricsDefault];

但没有运气.

提前致谢.

解决方法

这对我有用: –

在Swift 3.0中

UINavigationBar.appearance().isTranslucent = false

设置UINavigationBar的外观解决了我的问题.

ios – MFMailComposeViewControllerDelegate不工作Swift 3

ios – MFMailComposeViewControllerDelegate不工作Swift 3

我已经在我的一些应用程序中使用了邮件编写器一段时间了,而且最近mailComposeDelegate不再被调用.我不确定这是否与新版本的 Swift有关.所以,我想我会问,看看是否有其他人有类似的问题.我可以介绍邮件作曲家,但由于代表不工作,它永远不会被解雇.

以下是我一直使用的代码的精确副本:

func launchFeedback() {
    guard MFMailComposeViewController.canSendMail() else {
        return
    }

    let emailTitle = "Feedback"
    let messageBody = ""
    let toRecipents = ["johnappleseed@icloud.com"]
    mailComposer.mailComposeDelegate = self
    mailComposer.setSubject(emailTitle)
    mailComposer.setMessageBody(messageBody,isHTML: false)
    mailComposer.setToRecipients(toRecipents)
    self.show(mailComposer,sender: self)
}

func mailComposeController(controller: MFMailComposeViewController,didFinishWith result: MFMailComposeResult,error: Error?) {
    print(error)
    controller.dismiss(animated: true,completion: nil)
}

解决方法

这显然是一个Xcode错误.解决这个问题的唯一方法(在搜索StackOverflow生命一小时后)是这样的:

@objc(mailComposeController:didFinishWithResult:error:)
    func mailComposeController(_ controller: MFMailComposeViewController,error: NSError?) {
        controller.dismiss(animated: true)
    }

请在方法实现之前查看@objc宏.另请注意,最后一个参数必须是NSError类型而不是Apple文档建议的错误(并由Xcode自动完成)

ios – MFMailComposeViewController获取电子邮件正文

ios – MFMailComposeViewController获取电子邮件正文

我可以检测到MFMailComposeViewController的委托方法中的发送

- (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error

我如何获得此消息的文本?

我需要它用于分析.

日Thnx

解决方法

我不认为,你可以从委托方法中获取文本.

关于objective-c – 如何将焦点设置在MFMailComposeViewController的TO字段上?将焦点设置到指定的控件或窗体上应采用什么方法的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于ios – i386架构的未定义符号:“_OBJC_CLASS _ $_ MFMailComposeViewController”、ios – MFMailComposeViewController navigationBar颜色不完全匹配、ios – MFMailComposeViewControllerDelegate不工作Swift 3、ios – MFMailComposeViewController获取电子邮件正文等相关内容,可以在本站寻找。

本文标签: