2012-03-08 21 views
29

güncellenen UIAlertView şimdi UIAlertView yaninasıl UIAlertView bir metin alanını init olabilir

alert.alertViewStyle = UIAlertViewStylePlainTextInput; 

Bu iyi çalışıyor bir metin giriş alanı sağlayan bir tarzı vardır ama Varsylan ile giriş metni init istedi "örnek" gibi bir metin.

geçmişte millet (büyük çalışır) gibi belgesiz api kullanmış olduğu

[alert addTextFieldWithValue:@"sample text" label:@"Text Field"]; 

görüyoruz ama bu hala resmi bir Apple genel API olmadığından bunu kullanamaz.

Bunu halletmenin başka bir yolu var mı? willPresentAlertView içinde init yapmaya çalıştım ama metin alanı salt okunur görünüyor.

Teşekkür

cevap

8

Değil test, ama bu işe yarar varsayalım:

UIAlertView* alert = [[UIAlertView alloc] initWithTitle:...]; 
UITextField* textField = [alert textFieldAtIndex:0]; 
textField.text = @"sample"; 
[alert show]; 
57

UIALertView istediğiniz UITextField nesnesi döndüren bir textFieldAtIndex: yöntemi vardır. varsayılan ayarı için

UIAlertView *alert = .... 
UITextField *textField = [alert textFieldAtIndex:0]; 
textField.placeholder = @"your text"; 

UIAlertView Class Reference

+0

Büyük - bu sorunuza yanıt ise Bir saniye sonra kene tıklayarak cevabını kabul edebilir, hoş geldin :) konum – timeview

+1

çalıştı teşekkür ederim – Mutix

+0

Bu artık işe yaramıyor. textFieldAtIndex bu hatayı üretir: *** 'NSInvalidArgumentException' yakalanmamış istisna nedeniyle uygulamayı sonlandırma, nedeni: 'textFieldIndex (0), metin alanlarının dizisinin sınırları dışındadır'. – Symmetric

6

: Bir UIAlertViewStylePlainTextInput için

, textfield endeksi 0.

Ardından yer tutucu (veya metin) ayarlayabilirsiniz textfield malıdır uiAlertView'de bu değer işe yarayacak.

UIAlertView *alert = .... 
UITextField *textField = [alert textFieldAtIndex:0]; 
[textField setText:@"My default text"]; 
[alert show]; 
0
- (IBAction)showMessage:(id)sender { 
    UIAlertView *message = [[UIAlertView alloc] initWithTitle:@"Add New Category" 
                 message:nil 
                delegate:self 
              cancelButtonTitle:@"Add" 
              otherButtonTitles:@"Cancel", nil]; 
    [message setAlertViewStyle:UIAlertViewStylePlainTextInput]; 
    [message show]; 
} 

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex 
{ 
    NSString *title = [alertView buttonTitleAtIndex:buttonIndex]; 
    if([title isEqualToString:@"Add"]) 
    { 
     UITextField *username = [alertView textFieldAtIndex:0]; 
     NSLog(@"Category Name: %@", username.text); 
    } 
} 
9
yapmak

kolay yolu

UIAlertView *alerView = [[UIAlertView alloc] initWithTitle:@"your title" message:@"your message" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"OK", nil]; 
    alerView.alertViewStyle = UIAlertViewStylePlainTextInput; 
    [[alerView textFieldAtIndex:0] setPlaceholder:@"placeholder text..."]; 
    [alerView show]; 
+0

Mükemmel Cevap :) almaya çalışmadan önce –

İlgili konular