键盘显示时UIAlertView消息无法正常显示

3
UIAlertView消息框在编辑其中的文本字段(即键盘显示时)时无法正常显示。下面是它的样子: enter image description here 当没有键盘时: enter image description here 这是创建该警告框的代码:
        UIAlertView *alertView = [[UIAlertView alloc]
                                  initWithTitle:@"Title"
                                  message:@"Enter a name for your recipe"
                                  delegate:self
                                  cancelButtonTitle:@"Cancel"
                                  otherButtonTitles:@"OK", nil];
        [alertView setAlertViewStyle:UIAlertViewStylePlainTextInput];
        [alertView show];

有没有一种方法可以更改视图中某些组件的大小,以便在显示键盘时适合屏幕?

编辑:我刚刚发现,当键盘出现时,警报视图会变为可滚动。因此,如果您向下滚动,就可以看到消息。但是,第一次弹出警报视图时我没有注意到这一点,其他用户也可能不会。目前,我正在使用Visput建议的方法。


http://stackoverflow.com/questions/19288340/uialertview-message-not-showing-properly?rq=1 - Ramdhas
尝试使用 [alertView setAutoresizingMask:UIViewAutoresizingNone]; - NKB
我试过了 - 它还是一样的。 - Moon Cat
1个回答

0

这是iOS的标准行为。当在横屏模式下创建新相册时,您可以在“照片”应用程序中看到相同的布局。
我认为在这种情况下最好的方法是:将所有文本放置在message中,但将title设置为nil。
在您的情况下:

UIAlertView *alertView = [[UIAlertView alloc]
                              initWithTitle:nil
                              message:@"Title: Enter a name for your recipe"
                              delegate:self
                              cancelButtonTitle:@"Cancel"
                              otherButtonTitles:@"OK", nil];

另一种方法是手动布局UIAlertView对象中的子视图,但这可能会导致出现很多错误。我想再强调一下,你不要这样做。 - Scott Berrevoets
我错了,似乎在ios7中无法手动布局UIAlertView(在ios6中是可能的)。这就是为什么您可以考虑使用AlertView的自定义实现。有关详细信息,请参见此主题:https://dev59.com/-WMl5IYBdhLWcg3wDjSg。我还删除了建议使用自定义布局的部分答案。 - Vlad Papko
仍然有可能,但正如你发现的那样,这是一件非常麻烦的事情,有可能会导致应用程序被拒绝,并且非常容易出现问题。我强烈不建议任何人走这条路。像你说的,自定义警报视图实现要容易得多。 - Scott Berrevoets

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接