当在iOS5上设置StatusBarHidden:YES时,MFMailComposeViewController操作表不在屏幕上

当在iOS5上设置StatusBarHidden:YES时,MFMailComposeViewController操作表不在屏幕上,ios,ipad,ios5,Ios,Ipad,Ios5,我发现MFMailComposeViewController的取消按钮有问题。这是我的背景 - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. [[UIApplication sharedApplication] setStatusBarHidden:YES]; } - (IBAction)showBu

我发现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时,当点击“取消”按钮作为图像时,操作表不会显示:

左上角的红色小图是行动表。如果我将statusbarhidden设置为否,它将显示


感谢您的帮助,谢谢

我通过注册UIKeyboardWillShowNotification解决了这个问题(我认为这是一个iOS错误)。无论何时显示键盘,我都会根据方向(横向左侧或右侧),手动将MFMailComposeViewController超级视图的框架设置为+/-20(状态栏高度)。这是一个相当丑陋的黑客,但它现在对我有效。

我用了一个计时器,移动

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

到行动表之外,它也会起作用。

Soo。。。。问题是什么?你希望行动表在哪里?啊,问题是行动表在屏幕外,你不能点击它。我希望它正常出现,也就是说在取消按钮的上方或下方。这只发生在iOS5上:(谢谢你的解决方案。我没有因为这个问题而隐藏状态栏,但现在我不得不隐藏它。你的状态栏拯救了我的一天