gpt4 book ai didi

ios - 出现键盘时 MFMailComposeViewController didFinishWithResult 问题

转载 作者:行者123 更新时间:2023-11-29 10:32:44 26 4
gpt4 key购买 nike

我有一个 MFMailComposeViewController 的标准实现。

我已经设置了正确的委托(delegate)协议(protocol),并且在 didFinishWithResult 方法上发生了日志。

参见:

mailComposer = [[MFMailComposeViewController alloc] init];
[mailComposer setSubject:emailTitle];
[mailComposer setMessageBody:messageBody isHTML:YES];
mailComposer.mailComposeDelegate = self;

[[self getController] presentViewController:mailComposer animated:YES completion:NULL];

- (void) mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error
{
NSLog(@"mail dismiss");
[[self getController] dismissViewControllerAnimated:YES completion:NULL];
}

这正确地显示了邮件编写器,并且一切正常。也就是说,如果我按下“取消”按钮,则会调用 didFinishWithResult 方法并关闭 mailComposer。

但是,如果我尝试键入任何内容,例如 TO: 电子邮件地址,或邮件编写器本身中的任何其他内容,感觉键盘出现正在删除我的 View Controller 的委托(delegate)操作,因为“取消”和“发送”按钮不会触发任何操作

有什么想法吗?这让我发疯:/

干杯

编辑

这是 getController 的代码:

- (UIViewController *) getController
{
Class vcc = [UIViewController class];

UIResponder *responder = self;
while ((responder = [responder nextResponder]))
if ([responder isKindOfClass: vcc])
return (UIViewController *)responder;

return nil;
}

最佳答案

当 UITextField 成为 FirstResponder 时,您的 Controller 会收到 resignFirstResponder。

为什么要使用“getController”方法?在显示 MFMailComposeViewController 的 ViewController 上创建属性。

关于ios - 出现键盘时 MFMailComposeViewController didFinishWithResult 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28798848/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com