我正在使用标准样板代码通过 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/