Ios 将UITextField键盘置于前面

Ios 将UITextField键盘置于前面,ios,iphone,uitextfield,Ios,Iphone,Uitextfield,我创建了一个自定义的UIAlertView(从头开始,没有以任何方式子类化)类,该类工作得很好,但当警报有一个文本字段时,我遇到了一个问题。在这个特定的例子中,当我点击电子邮件地址字段时,键盘会显示在弹出警报下。调用此弹出窗口的视图也有一个UITextField(注释框)。我注意到,只有在点击主视图文本字段(注释框)后点击弹出文本字段(电子邮件地址)时,我才会出现这个问题。文本字段未使用相同的委托 有没有办法将键盘强制置于视图层次的前面 更新: 将文本字段添加到弹出窗口的代码(这是我的警报类P

我创建了一个自定义的
UIAlertView
(从头开始,没有以任何方式子类化)类,该类工作得很好,但当警报有一个文本字段时,我遇到了一个问题。在这个特定的例子中,当我点击电子邮件地址字段时,键盘会显示在弹出警报下。调用此弹出窗口的视图也有一个
UITextField
(注释框)。我注意到,只有在点击主视图文本字段(注释框)后点击弹出文本字段(电子邮件地址)时,我才会出现这个问题。文本字段未使用相同的委托

有没有办法将键盘强制置于视图层次的前面

更新: 将文本字段添加到弹出窗口的代码(这是我的警报类PopupDialog.m中的一个)

它随后添加到按钮上方的弹出视图中。半透明黑色背景和弹出视图最终通过以下方式添加到视图层次:

[[[[UIApplication sharedApplication] windows] lastObject] addSubview:background];
[[[[UIApplication sharedApplication] windows] lastObject] addSubview:self];

因此,原来弹出窗口中的“电子邮件”
UITextField
(位于弹出窗口下方)使用的是为“注释”
UITextField
显示的同一个键盘。我不得不将弹出窗口和半透明的黑色背景移到这个键盘视图后面

int count = [[[UIApplication sharedApplication] windows] count];
[[[[UIApplication sharedApplication] windows] objectAtIndex:count - 2] addSubview:background];
[[[[UIApplication sharedApplication] windows] objectAtIndex:count - 2] addSubview:self];

其中,
count-1
处的视图是键盘视图。

如果可以显示创建alertview的代码,则会有所帮助。例如,是否使用alertViewStyle使其显示文本字段?我添加了将文本字段添加到视图的代码。我认为这两位UITextField代表有点困惑。正在调用右键,但键盘没有放在最前面。如何将自定义警报添加到视图层次结构中?好的,这听起来很粗糙,但您可以做的是,对UITextField进行子类化,并将其放入方法-(UIView*)inputView{}中,当键盘即将出现时调用的方法,截取键盘UIView*keyboard=[super inputView];然后传递,然后将该视图添加到窗口中。只要警报的文本字段是firstresponder,当您点击键盘时,它就会工作
int count = [[[UIApplication sharedApplication] windows] count];
[[[[UIApplication sharedApplication] windows] objectAtIndex:count - 2] addSubview:background];
[[[[UIApplication sharedApplication] windows] objectAtIndex:count - 2] addSubview:self];