Ich muss eine TextField
zu einer UIAlertView
hinzufügen. Ich verstehe, dass Apple diesen Ansatz abhält. Gibt es also eine Bibliothek, die ich verwenden könnte, um eine TextField
zu einem UIAlertView
Look-Alike-Frame hinzuzufügen?Hinzufügen von TextField zu UIAlertView
Antwort
versuchen, etwas wie folgt aus:
UIAlertView *alert = [[[UIAlertView alloc] initWithTitle:@"Title"
message:@"\n\n"
delegate:self
cancelButtonTitle:@"Cancel"
otherButtonTitles:@"Save", nil] autorelease];
CGRect rect = {12, 60, 260, 25};
UITextField *dirField = [[[UITextField alloc] initWithFrame:rect] autorelease];
dirField.backgroundColor = [UIColor whiteColor];
[dirField becomeFirstResponder];
[alert addSubview:dirField];
[alert show];
können Sie versuchen:
UIAlertView *myAlertView = [[UIAlertView alloc] initWithTitle:@"Your title here!" message:@"this gets covered" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"OK", nil];
UITextField *myTextField = [[UITextField alloc] initWithFrame:CGRectMake(12.0, 45.0, 260.0, 25.0)];
[myTextField setBackgroundColor:[UIColor whiteColor]];
[myAlertView addSubview:testTextField];
[myAlertView show];
[myAlertView release];
dieses link Folgen für das Detail.
Ja, Ihr Code funktioniert. Aber Apple rät davon ab, private APIs zu verwenden. SO kann ich das anders lösen? – shajem
Hier wird keine private API verwendet. –
@anonymous Das OP verweist auf diesen Satz aus der Dokumentation: Die Ansichtshierarchie für diese Klasse ist privat und darf nicht geändert werden. –
beziehen Sie sich darauf ... http://iosdevelopertips.com/undocumented/alert-with-textfields.htmlDies ist private API und wenn Sie es für App in Appstore verwenden, kann es abgelehnt werden, aber es ist in Ordnung für die Unternehmensentwicklung.
Vielen Dank für Ihre Antwort, aber ich hoffe, meine App in Appstore zu veröffentlichen: S – shajem
als ich nicht rate, sollten Sie dies implementieren. –
Ich benutze BlockAlertsAndActionSheets anstelle der Apple-Komponenten für AlertViews und ActionSheets, wie ich die Blöcke-Ansatz bevorzugen. Enthält auch eine BlockTextPromptAlertView
in der Quelle, die Sie möglicherweise möchten. Sie können die Bilder dieses Steuerelements ersetzen, um den Apple-Stil wiederherzustellen.
Tutorial which gets you started
Beispiel:
- (IBAction)newFolder:(id)sender {
id selfDelegate = self;
UITextField *textField;
BlockTextPromptAlertView *alert = [BlockTextPromptAlertView promptWithTitle :@"New Folder"
message :@"Please enter the name of the new folder!"
textField :&textField];
[alert setCancelButtonWithTitle:@"Cancel" block:nil];
[alert addButtonWithTitle:@"Okay" block:^{
[selfDelegate createFolder:textField.text];
}];
[alert show];
}
- (void)createFolder:(NSString*)folderName {
// do stuff
}
Können Sie mir ein Beispiel zeigen, das 'BlockTextPromptAlertView' verwendet. Ich habe den Eindruck, dass Entwickler keine Textfelder usw. zu UIAlertView hinzufügen dürfen. – shajem
Sie haben Recht mit Ihrem Eindruck. Das ist der Grund, warum BlockAlertsAndActionSheets ** UIAlertView überhaupt nicht verwendet, es ist eine vollständig unabhängige Implementierung, ohne dass private APIs verwendet werden. Ich habe momentan keinen Zugriff auf meine Quellen, kann aber meine Antwort in einigen Stunden mit einem Codebeispiel aktualisieren. –
aktualisiert mit Beispielverwendung –
Leider ist die einzige offizielle API dafür ist, iOS 5 und höher, es ist eine Eigenschaft alertViewStyle
genannt, die auf die folgenden Parameter eingestellt werden:
UIAlertViewStyleDefault
UIAlertViewStyleSecureTextInput
UIAlertViewStylePlainTextInput
UIAlertViewStyleLoginAndPasswordInput
UIAlertViewStylePlainTextInput
ist derjenige, den Sie wollen.
Es wird von Apple dringend abgeraten, sich mit der oben beschriebenen Ansichtshierarchie zu messen.
Ich muss dies für iOS 4 und 5 erstellen. Sie sind sich dessen bewusst jede andere Bibliothek, wo ich verwenden könnte – shajem
Für iOS5:
UIAlertView *av = [[UIAlertView alloc]initWithTitle:@"Title" message:@"Please enter someth" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"OK", nil];
av.alertViewStyle = UIAlertViewStylePlainTextInput;
[av textFieldAtIndex:0].delegate = self;
[av show];
Auch können benötigen UITextFieldDelegate
, UIAlertViewDelegate
Protokolle zu implementieren.
Hinzufügen von 'Shmidt' zu beantworten, wird der Code Text in UIAlertView eingegeben zu erfassen ist unten eingefügt (Danke 'Wayne Hartman' Getting text from UIAlertView)
für- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
if (buttonIndex == 1) {
self.userNumber = [alertView textFieldAtIndex:0].text;
if (self.userNumber) {
// user enetered value
NSLog(@"self.userNumber: %@",self.userNumber);
} else {
NSLog(@"null");
}
}
}
Ab iOS 8 UIAlertView
ist veraltet UIAlertController
, die UITextField
s für das Hinzufügen unter Verwendung des Verfahrens Unterstützung ergänzt:
- (void)addTextFieldWithConfigurationHandler:(void (^)(UITextField *textField))configurationHandler;
this answer für ein Beispiel.
Zuallererst Hinzufügen von UIAlertViewDelegate zu ViewController.h Datei wie
#import <UIKit/UIKit.h>
@interface UIViewController : UITableViewController<UIAlertViewDelegate>
@end
und als Add Below-Code, wo Sie wollen Anzeige aufmerksam zu machen,
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Title"
message:@"Message"
delegate:self
cancelButtonTitle:@"Done"
otherButtonTitles:nil];
alert.alertViewStyle = UIAlertViewStylePlainTextInput;
[alert show];
und Delegierter Methode, die, was Eingabe von UITextField gibt
-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
NSLog(@"%@", [alertView textFieldAtIndex:0].text);
}
- 1. AutoCapitalization von TextField von UIAlertView
- 2. Aktivitätsanzeige zu UIAlertView hinzufügen
- 3. TextField nicht zu jFrame hinzufügen
- 4. Hinzufügen von UIActivityindicatorView in einer UIAlertView
- 5. Wie Bild in UIAlertView hinzufügen?
- 6. Wie bekomme ich eine Eingabe von UIAlertView?
- 7. Wie kann ich iAd in UIAlertview hinzufügen?
- 8. iphone-sdk: Hinzufügen eines Textfelds zu UIAlertview funktioniert nicht in iOS 4?
- 9. hinzufügen Rich-Text-Format-Funktionalität django TextField-
- 10. UIAlertView Aktualisierung zu UiAlertCOntroller Beratung
- 11. Swift - Texteingabe in UIAlertView
- 12. Probleme beim Abrufen von Text aus UIAlertView-Textfeld
- 13. Customizing UIAlertView
- 14. Aufruf benutzerdefinierter UIAlertView in benutzerdefiniertem UIAlertView
- 15. UIAlertView in ARC App
- 16. UIAlertView Delegaten
- 17. Benutzereingaben von TextField von einer FXML-Datei zu einer anderen
- 18. UIAlertView mit Textfeld keine Felder anzeigen
- 19. TextField überlagert ein anderes TextField - Android
- 20. UIAlertView in swift/Xcode
- 21. Fokus von TextField entfernen JavaFX
- 22. Tastaturabdeckungen TextField
- 23. UIAlertView Eingabeaufforderung
- 24. Schließen von UIAlertView anstelle von dissmissing
- 25. Alternative zu UIAlertView für iOS 9?
- 26. iphone zu ipad, iphone 4 uialertview probleme
- 27. Solr TextField zu Java @Field Mapping
- 28. J2ME TextField in einem Vektor?
- 29. Unterklasse einer UIAlertView
- 30. UIPickerView ändert sich in normales textField, wenn auf Alarm mit TextField geklickt wird
Ich denke, Apple entmutigen Ihre Ansatz. – shajem