0

我遇到了 MFMailComposeViewController 的取消按钮的问题。这是我的上下文

- (void)viewDidLoad
{
    [super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
   [[UIApplication sharedApplication] setStatusBarHidden:YES];
}

- (IBAction)showButtonDidTouch:(id)sender {
    if ([MFMailComposeViewController canSendMail]) {
         MFMailComposeViewController *mailViewController = [[MFMailComposeViewController alloc] init];
         mailViewController.mailComposeDelegate = self;
         mailViewController.modalPresentationStyle = UIModalPresentationFormSheet;
         [self presentModalViewController:mailViewController animated:YES];
         [mailViewController release];
}
}

我在 viewDidLoad 隐藏了状态栏,然后将显示的 mailViewController 称为当前模式视图控制器。但是,问题是当应用程序处于横向模式和 uikeyboard 出现时,当点击取消按钮作为图像时,操作表不会显示:http: //img651.imageshack.us/img651/5489/screenshot20120514at114.png

左上角的小红色图像是操作表。如果我设置 statusbarhidden = NO,它就会显示出来。

感谢您的帮助,谢谢

4

2 回答 2

1

通过注册 UIKeyboardWillShowNotification,我能够解决这个问题(我认为这是一个 iOS 错误)。每当显示键盘时,我手动将 MFMailComposeViewController 的超级视图的框架设置为 +/- 20(状态栏高度),具体取决于方向(横向或横向)。这是一个非常丑陋的黑客,但它现在对我有用。

于 2012-06-18T10:13:04.743 回答
-1

我用了一个计时器,移动

[self presentViewController:mc animated:YES completion:^(void) {}];

到操作表之外,它也可以工作。

于 2015-04-08T03:58:19.877 回答