Xcode 文本字段未上移的UIAlertView

Xcode 文本字段未上移的UIAlertView,xcode,architecture,uialertview,armv7,armv6,Xcode,Architecture,Uialertview,Armv7,Armv6,我想显示一个获取用户用户名和密码的提示 我通过显示UIAlertView并将UITextFields作为子视图添加到其中来实现这一点 最近,我将我的项目转移到XCode 4.2,并更新了所有项目设置。我的基本SDK设置为iOS 5.0,部署目标设置为4.0 然后我注意到它只是为armv7架构而构建的,因此我将其更改为包括armv6,因为我也想支持iPhone 3G 完成此操作后,我注意到UIAlertView没有像以前那样向上移动,现在它在显示时被键盘覆盖。我在苹果的文档中读到,你不应该将UIA

我想显示一个获取用户用户名和密码的提示

我通过显示UIAlertView并将UITextFields作为子视图添加到其中来实现这一点

最近,我将我的项目转移到XCode 4.2,并更新了所有项目设置。我的基本SDK设置为iOS 5.0,部署目标设置为4.0

然后我注意到它只是为armv7架构而构建的,因此我将其更改为包括armv6,因为我也想支持iPhone 3G

完成此操作后,我注意到UIAlertView没有像以前那样向上移动,现在它在显示时被键盘覆盖。我在苹果的文档中读到,你不应该将UIAlertViews()子类化,所以我改变了做事的方式。这并没有解决问题

我注意到,我可以通过将构建设置-“仅构建活动体系结构”设置为“是”,让它在我的手机(iPhone4,所以是armv7体系结构)上工作

我怀疑问题与尝试为armv6构建有关(事实上,从我尝试为其构建的体系结构中删除它会给我发出正确的警报)

我想我现在应该开始我的问题了。。。我很难理解为什么会这样。我在某个地方读到(现在找不到链接),在iOS 4及更高版本中将文本字段添加到UIAlertView时,您不需要手动向上移动警报。既然我至少是为iOS4构建的,那么这两种架构不都可以吗

另外,我如何使它为armv6构建,并且仍然具有正确向上移动的警报

编辑:也许我错了,但我注意到我有两个手机实例,我可以将应用程序部署到其中。选择第一个并构建一个应用程序,UIAlertView不会在应该的时候向上移动,但选择第二个会使其正常工作。将发布屏幕截图,但我是新用户,因此我还没有必要的权限…

Oki

我已经设法想出了一个有效的解决方案,并使UIAlertView处于正确的位置,但我仍然不能完全确定问题的根本原因是什么

我通过响应
UIAlertViewDelegate
方法
willPresentAlertView:
并执行以下操作解决了这个问题

- (void) willPresentAlertView: (UIAlertView *) alertView {

    UIWindow *keyWindow = [[UIApplication sharedApplication] keyWindow];

    if (keyWindow.center.y - alertView.center.y < 0.001f) {

        CGPoint center = [alertView center];
        center.y = center.y - 108.0f;
        [alertView setCenter:center];  
    }
}
-(void)将呈现AttalertView:(UIAlertView*)alertView{
UIWindow*keyWindow=[[UIApplication sharedApplication]keyWindow];
如果(keyWindow.center.y-alertView.center.y<0.001f){
CGPoint中心=[alertView中心];
中心y=中心y-108.0f;
[alertView设置中心:中心];
}
}
它检查
UIAlertView
是否在屏幕中央,如果在屏幕中央,则将其向上移动(即操作系统尚未计算其正确位置)。注意:如果您希望此功能同时适用于纵向和横向,则需要添加一项检查,检查设备处于哪个特定方向,然后相应地调整警报的上移量