2013-10-24 37 views
2

我創建了一個自定義的UIAlertView(從頭開始,而不是以任何方式進行子類化),該類很好地工作,但是當警報具有文本字段時出現問題。在這個特定的實例中,當我點擊電子郵件地址字段時,鍵盤出現在我的彈出式警報下。從這個彈出窗口調用的視圖也有一個UITextField(一個註釋框)。我注意到,如果點擊主視圖文本字段(評論框)後點擊彈出文本字段(電子郵件地址),我只有這個問題。文本字段不使用相同的委託。將UITextField鍵盤帶到前面

enter image description here

有沒有辦法鍵盤強制視圖層次的面前?

UPDATE: 代碼添加文本框彈出(這是一個在我的警報類PopupDialog.m

self.textField = [[UITextField alloc] initWithFrame:CGRectMake(0, 0, 100, 34)]; 
_textField.font = [UIFont fontWithName:@"GillSans" size:18]; 
_textField.borderStyle = UITextBorderStyleRoundedRect; 
_textField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter; 
_textField.backgroundColor = [UIColor white]; 
_textField.delegate = self; 
_textField.placeholder = @"[email protected]"; 

它以後加入到上面的按鈕彈出視圖。半透明黑色背景和彈出視圖通過最終加入到視圖層級結構:

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

如果您可以顯示創建alertview的代碼,這將有所幫助。例如,你使用alertViewStyle讓它顯示文本框? – bizsytes

+0

我已經添加了將文本字段添加到視圖的代碼。我認爲有些事情與2 UITextField代表混淆。權利的被稱爲,但鍵盤沒有被帶到前面。 –

+0

如何將自定義警報添加到視圖層次? –

回答

1

因此,原來這是提出了相同的鍵盤的「評論」正被用於UITextField(下方彈出)在彈出窗口中輸入'email'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處的視圖是鍵盤視圖。