webentwicklung-frage-antwort-db.com.de

Wie kann ich ein Textfeld in einer UIAlertView initiieren?

Der aktualisierte UIAlertViewhat jetzt einen Stil, der ein Texteingabefeld in UIAlertViewerlaubt, d. H.

alert.alertViewStyle = UIAlertViewStylePlainTextInput;

Das funktioniert gut, aber ich wollte den Eingabetext mit einem defualtierten Text wie "sample" initiieren.

Ich sehe, dass die Leute in der Vergangenheit undokumentierte APIs verwendet haben (was großartig funktioniert)

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

da dies jedoch immer noch keine offizielle API von Apple ist, kann ich sie nicht verwenden.

Gibt es eine andere Möglichkeit, damit umzugehen? Ich habe versucht, in willPresentAlertViewzu initiieren, aber das Textfeld scheint schreibgeschützt zu sein.

Vielen Dank

29
timeview

Die Variable UIALertView verfügt über eine Methode textFieldAtIndex:, die das gewünschte Objekt UITextField zurückgibt.

Für eine UIAlertViewStylePlainTextInput ist der Index des Textfelds 0.

Sie können dann die Platzhalter- (oder Text-) Eigenschaft des Textfelds festlegen:

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

UIAlertView-Klassenreferenz

57
Mutix

Einfacher Weg

 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];
9
Dipu Rajak

Nicht getestet, aber ich gehe davon aus, dass dies funktionieren würde:

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

Wenn Sie einen Standardwert in uiAlertView festlegen, funktioniert dieses Ding.

UIAlertView *alert = ....
UITextField *textField = [alert textFieldAtIndex:0];
[textField setText:@"My default text"];
[alert show];
6
Salman Iftikhar
- (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);
    }
}
0
user948749