2012-04-30 27 views
8

Vấn đề - Tôi muốn một UIAlertView có chứa một tiêu đề, hai trường văn bản với trình giữ chỗ và hai nút. Những gì tôi đã làm cho đến bây giờ - Tôi đã sử dụng mã này, tôi nhận được UIAlertView chính xác với tất cả những gì tôi đã đề cập, nhưng khi xem được tải có vẻ xuất hiện ở phía dưới đầu tiên và sau đó đi vào giữa chế độ xem.UIAlertView với hai TextFields và hai nút

-(void)showalert{ 
    disclaimerAgreedAlertView = [[UIAlertView alloc] initWithTitle:@" " 
                  message:@" " 
                  delegate:self 
               cancelButtonTitle:@"Cancel" 
               otherButtonTitles:@"Login", nil]; 

    userNameTextField = [[UITextField alloc] initWithFrame:CGRectMake(20.0, 15.0, 245.0, 25.0)]; 
    userNameTextField.delegate=self; 
    [userNameTextField setBackgroundColor:[UIColor whiteColor]]; 
    [userNameTextField setKeyboardType:UIKeyboardTypeDefault]; 
    [email protected]"Username"; 
    userNameTextField.secureTextEntry=NO; 
    [disclaimerAgreedAlertView addSubview:userNameTextField]; 


    passwordTextField = [[UITextField alloc] initWithFrame:CGRectMake(20.0, 45.0, 245.0, 25.0)]; 
    passwordTextField.delegate=self; 
    [passwordTextField setBackgroundColor:[UIColor whiteColor]]; 
    [passwordTextField setKeyboardType:UIKeyboardTypeDefault]; 
    [email protected]"Password"; 
    passwordTextField.secureTextEntry=YES; 
    [disclaimerAgreedAlertView addSubview:passwordTextField]; 

    disclaimerAgreedAlertView.tag=99; 

    [disclaimerAgreedAlertView show]; 
    disclaimerAgreedAlertView.frame= CGRectMake(5, 400, 320, 160); 

} 

Sau đó, tôi thử một số của phi api tài liệu mà đang đưa ra cho tôi những kết quả tôi muốn nhưng tôi sợ rằng nó có thể gây ra sự từ chối của ứng dụng của tôi.

Vì vậy, bất kỳ giải pháp nào cho điều này?

+0

vấn đề của bạn là không chính xác rõ ràng .. –

+0

@AnkitSrivastava Vấn đề với mã là AlertView của tôi xuất hiện ở dưới cùng của xem trong 1 giây và sau đó đi vào giữa xem (vì nó sẽ đến). Vì vậy, nó không phải là tìm kiếm như nó nên). – Akshay

Trả lời

4

y == 400 là về phía dưới cùng của màn hình điện thoại. Tôi tưởng tượng sau đó, UIAlertView mà không bao giờ mong đợi hoặc có subviews thêm hoặc khung của nó thiết lập, thiết lập lại của nó là khung để được trung tâm. Bạn có thể nhận xét rằng dòng cuối cùng và xem những gì sẽ xảy ra?

+0

Tôi chỉ bỏ lỡ hoặc tôi đã làm sai kể từ khi bắt đầu. Cảm ơn đã giúp đỡ. Sau khi bình luận dòng cuối cùng nó có vẻ là làm việc tốt. Cảm ơn :) – Akshay

4

Chỉ cần di chuyển báo cáo kết quả cho thấy bên dưới nơi bạn thiết lập khung của báo

+0

Cảm ơn bạn. Điều này cũng hoạt động như sự quyến rũ.:) – Akshay

2

tôi sử dụng DDAlertPrompt trong các ứng dụng của tôi. Thật dễ dàng và một lớp học thả xuống.

+0

Liên kết cho tôi "404" –

+0

liên kết bị hỏng –

+0

hiện có thể truy cập được :) – mstottrop

61

Bắt đầu từ iOS 5 có thể sử dụng thuộc tính alertViewStyle của UIAlertView để nhận loại cảnh báo khác nhau, cũng với trường văn bản.

Giá trị có thể:

  • UIAlertViewStyleDefault
  • UIAlertViewStyleSecureTextInput
  • UIAlertViewStylePlainTextInput
  • UIAlertViewStyleLoginAndPasswordInput

Bạn có thể sử dụng UIAlertViewStyleLoginAndPasswordInput để có được một UIAlertView với hai lĩnh vực văn bản và sau đó bạn có thể tùy chỉnh một số thuộc tính của textfields:

UIAlertView *av = [[UIAlertView alloc] initWithTitle:@"Your_Title" message:@"Your_message" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"OK", nil]; 
[av setAlertViewStyle:UIAlertViewStyleLoginAndPasswordInput]; 

// Alert style customization 
[[av textFieldAtIndex:1] setSecureTextEntry:NO]; 
[[av textFieldAtIndex:0] setPlaceholder:@"First_Placeholder"]; 
[[av textFieldAtIndex:1] setPlaceholder:@"Second_Placeholder"]; 
[av show]; 

Bạn có thể truy cập vào các giá trị của các trường văn bản trên alertView: clickedButtonAtIndex: của UIAlertViewDelegate.

-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{ 
    NSLog(@"1 %@", [alertView textFieldAtIndex:0].text); 
    NSLog(@"2 %@", [alertView textFieldAtIndex:1].text); 
} 
2

tôi sử dụng sau đây cho cùng một mục đích

-(void)alertView { 
UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"" 
               message:@"Enter User & Password" 
               delegate:self 
             cancelButtonTitle:@"Cancel" 
             otherButtonTitles:@"Login", nil]; 


alert.alertViewStyle = UIAlertViewStyleLoginAndPasswordInput; 
UITextField * alertTextField1 = [alert textFieldAtIndex:0]; 
alertTextField1.keyboardType = UIKeyboardTypeDefault; 
alertTextField1.placeholder = @"User"; 

UITextField * alertTextField2 = [alert textFieldAtIndex:1]; 
alertTextField2.keyboardType = UIKeyboardTypeDefault; 
alertTextField2.placeholder = @"Password"; 


[alert show]; 

} 

Nếu bạn không sử dụng kí tự an toàn trong lĩnh vực văn bản thứ hai thêm

alertTextField2.secureTextEntry=NO; 
Các vấn đề liên quan