2010-12-17 3 views
2

Ich habe eine Ansicht in meiner App mit vielen Etiketten und einer Symbolleiste mit einigen Tasten. Ich möchte alle Beschriftungen gleichzeitig auf Knopfdruck bearbeiten. Ich dachte, es könnte eine Möglichkeit sein, eine Texteingabe zu "öffnen" und gleichzeitig eine Tastatur erscheinen zu lassen. Was ist der sauberste Weg, das zu tun? DankeWie man ein Textfeld öffnet

Antwort

10

http://discussions.apple.com/thread.jspa?messageID=8445879

Alternativ. Hier ist, wie ich es tun:

UIAlertView *prompt = [[UIAlertView alloc] initWithTitle:@"Please enter your name:" 
               message:@"\n\n" 
               delegate:self 
             cancelButtonTitle:@"Cancel" 
             otherButtonTitles:@"Enter", nil]; 

textField = [[UITextField alloc] initWithFrame:CGRectMake(12, 50, 260, 25)]; 
[textField setBackgroundColor:[UIColor whiteColor]]; 
[textField setPlaceholder:@"Name for message"]; 
[prompt addSubview:textField]; 
[textField release]; 

// show the dialog box 
[prompt show]; 
[prompt release]; 

// set cursor and show keyboard 
[textField becomeFirstResponder]; 

Dann in der UIAlertView Delegatmethode Sie den Inhalt von TextField.text lesen :-)

+0

Ich dachte, es könnte mich viel einfacher lol ty sowieso – k20

+0

lol ... ich überarbeitet habe meine Antwort. – Nevin

+0

@Nevin Vielen Dank dafür, super einfach (für Iphone, das ist!), Sobald Sie daran denken. Ich musste einen Tippfehler beheben, die Zeile [prompt textField]; sollte [prompt addSubview: textField] sein; –

0

Dieser Satz von Codes könnte http://d.pr/1Tyt

alt text

+0

eine Antwort mit einem Link zu einer Website, die möglicherweise später nicht funktioniert (wie jetzt) ​​ist es nicht nützlich – klifa

0

helfen Verwenden Sie diese Link

Dies wird Ihnen helfen, mit textFields auf einfache Weise alarmieren.

+0

aber es eine undokumentierte Methode verwenden, die Apple wird wahrscheinlich Ihre App ablehnen, wenn Sie es verwenden. – Nevin

+0

sieht gut aus, ist aber undokumentiert :( – k20

+0

ok, also nach Apple dokumentiert Methode, die für die App von Vorteil sein wird.Vielen Dank. – Ishu

10

Ich weiß, es ist zu spät Antwort, aber diese Antwort für diejenigen, die iOS 5.0 oder höher verwenden. Jetzt AlertView hat neue Eigenschaft AlertViewStyle für verschiedene Zwecke.

UIAlertViewStyle 
The presentation style of the alert. 

typedef enum { 
    UIAlertViewStyleDefault = 0, 
    UIAlertViewStyleSecureTextInput, 
    UIAlertViewStylePlainTextInput, 
    UIAlertViewStyleLoginAndPasswordInput 
} UIAlertViewStyle; 

Beispiel:

UIAlertView* alertView = [[UIAlertView alloc] initWithTitle:@"Title" message:@"Message" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Ok",nil]; 
     [alertView setAlertViewStyle:UIAlertViewStylePlainTextInput]; 
     [alertView show]; 
     [alertView release]; 

Delegierten:

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

Referenz: http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UIAlertView_Class/UIAlertView/UIAlertView.html

+0

Ich wusste nicht darüber, das ist großartig! – k20