2013-03-14 38 views

回答

1

是的,這是可能的。 只需將UITextField作爲子視圖添加到UIAlertView即可。 爲每個UITextField設置標籤,以便稍後檢索輸入的文本。

UIAlertView* alert=[[UIAlertView alloc] initWithTitle:@"Title" message:@"Message" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"OK", nil]; 

    UITextField *textField1 = [[UITextField alloc] initWithFrame:CGRectMake(12.0, 50.0, 260.0, 25.0)]; 
    textField1.tag=0; 
    textField1.borderStyle=UITextBorderStyleRoundedRect; 
    textField1.delegate=self; 

    [alert addSubview:textField1]; 

    UITextField *textField2 = [[UITextField alloc] initWithFrame:CGRectMake(12.0, 85.0, 260.0, 25.0)]; 
    textField2.tag=1; 
    textField2.delegate=self; 
    textField2.borderStyle=UITextBorderStyleRoundedRect; 

    [alert addSubview:textField2]; 

    [alert show]; 

請注意,這是不好的做法,因爲它依賴UIAlertView作爲UIView的子類。正如下面的MusiGenesis所指出的那樣,它不會從iOS 7開始工作。

希望有所幫助。

+3

當iOS 7(或其他版本)出現並且警報視圖外觀或行爲不同時會發生什麼? 'UIAlertView'並不意味着有隨機的子視圖添加到它。它現在可能工作,但這並不意味着這是一個好方法。 – rmaddy 2013-03-14 16:48:43

+0

@rmaddy:對你很有先見之明 - 看起來在iOS 7 beta 2中,根本不能將子視圖添加到「UIAlertView」。 – MusiGenesis 2013-06-26 17:30:52

+0

感謝您指出這一點。我會更新我的答案。 – 2013-06-26 19:21:52

2

最好的解決方案是編寫或使用具有所需文本字段的自定義警報視圖。如果您只需要1個文本字段(或用戶名/密碼),您仍然可以通過設置alertViewStyle property來使用UIAlertView。

已經編寫了自定義警報視圖,例如this one

相關問題