objective-c - 如何将焦点设置在 MFMailComposeViewController 的 TO 字段上?

标签 objective-c ios

我正在使用标准样板代码通过 MFMailComposeViewController 发送电子邮件,但是我找不到关于在 TO 字段上设置焦点的信息Safari 中的页面”或 map 中的“共享位置”。

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 对象的 View :

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 的子类。让它成为第一响应者。

正式来说,您应该检查 subview 的类型,而不是获取第一个或第二个对象。但话又说回来,正式你根本不应该这样做,因为这一切都没有记录,并且可能会在未来的 iOS 版本中中断。

关于objective-c - 如何将焦点设置在 MFMailComposeViewController 的 TO 字段上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5900045/

相关文章:

ios - 带有日文键盘的 UITextView attributedText 重复输入

ios - 应用代表 : Service call coming back from background

ios - 如何在 Swift 3 中创建调度队列

ios - 如何安全地停止使用多点连接发送图像

iphone - CAShapeLayer 的渐变颜色效果

objective-c - applyForce(0, 400) - SpriteKit 不一致

ios - AVAudioPlayer 控制句柄

objective-c - 添加到登录项 - 沙盒友好的解决方案

ios - Default.png 显示错误

ios - 在UIAccessibilityContainer中,使用 `accessibilityElements`和其他三种方法有什么区别?