加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

objective-c – 如何将焦点设置在MFMailComposeViewController的

发布时间:2020-12-16 07:25:21 所属栏目:百科 来源:网络整理
导读:我正在使用标准的样板代码来发送带有MFMailComposeViewController的电子邮件,但我找不到关于在TO字段上设置焦点的信息,当控制器显示时可以看到加号按钮,就像它对“本页的邮件链接”这样的功能一样. Safari或地图中的“共享位置”. MFMailComposeViewControll
我正在使用标准的样板代码来发送带有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版本中破坏.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读