我将UITextField放入UIAlertView并将其向上移动,以便键盘不会使用以下代码覆盖它:
[dialog setDelegate:self];
[dialog setTitle:@"Enter Name"];
[dialog addButtonWithTitle:@"Cancel"];
[dialog addButtonWithTitle:@"OK"];
UITextField * nameField = [[UITextField alloc] initWithFrame:CGRectMake(20.0, 45.0, 245.0, 25.0)];
[nameField setBackgroundColor:[UIColor whiteColor]];
[dialog addSubview:nameField];
CGAffineTransform moveUp = CGAffineTransformMakeTranslation(0.0, 100.0);
[dialog setTransform: moveUp];
[dialog show];
Run Code Online (Sandbox Code Playgroud)
我还有以下代码来处理警报视图:
- (void) alertView:(UIAlertView *)alert clickedButtonAtIndex:(NSInteger)buttonIndex{
NSLog(@"%d", (int) buttonIndex);
if (buttonIndex == 1) { // OK pushed
NSLog([alert textField].text); // does not log anything
} else {
// Cancel pushed
}}
Run Code Online (Sandbox Code Playgroud)
我还有一个UIAlertViewExtended.h文件,其中包含:
@class UITextField, UILabel;
@interface UIAlertView(Extended)
-(UITextField *)textField;
@end
Run Code Online (Sandbox Code Playgroud)
我的问题是如何获取用户输入的文本以及如何解除键盘?
谢谢,本
我正在尝试从警报视图中获取文本并将其添加到我的可变数组中以在表视图中列出.我意识到几个月前发布了类似的问题,但我不明白如何利用给定的答案.
-(IBAction)insert {
UIAlertView* dialog = [[UIAlertView alloc] init];
[dialog setDelegate:self];
[dialog setTitle:@"Enter Name"];
[dialog setMessage:@" "];
[dialog addButtonWithTitle:@"Cancel"];
[dialog addButtonWithTitle:@"OK"];
UITextField *nameField = [[UITextField alloc] initWithFrame:CGRectMake(20.0, 45.0, 245.0, 25.0)];
[nameField setBackgroundColor:[UIColor whiteColor]];
[dialog addSubview:nameField];
[dialog show];
[data addObject:[nameField text]];
[mainTableView reloadData];
Run Code Online (Sandbox Code Playgroud)
然而,我的应用程序崩溃,因为它说我试图在索引0处插入一个零对象.我做错了什么?
编辑:好吧我想我错过了处理alertview的方法.所以我发现了这个:
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
NSString *buttonTitle=[alertView buttonTitleAtIndex:buttonIndex];
if([buttonTitle isEqualToString:@"Cancel"]) {
return;
}
else if([buttonTitle isEqualToString:@"Ok"]) {
[data addObject:nameField.text];
}
Run Code Online (Sandbox Code Playgroud)
现在我只需要连接各个部分,但不知道如何.
这是我用文本框创建UIAlertView的代码.
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Enter A Username Here" message:@"this gets covered!"
delegate:self cancelButtonTitle:@"Dismiss" otherButtonTitles:@"OK!", nil];
UITextField *myTextField = [[UITextField alloc] initWithFrame:CGRectMake(12, 45, 260, 25)];
CGAffineTransform myTransform = CGAffineTransformMakeTranslation(0, 60);
[alert setTransform:myTransform];
alert.tag = kAlertSaveScore;
[myTextField setBackgroundColor:[UIColor whiteColor]];
[alert addSubview:myTextField];
[alert show];
[alert release];
[myTextField release];
Run Code Online (Sandbox Code Playgroud)
我的问题是,如何从文本字段中获取值:
- (void) alertView:(UIAlertView *) actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {
}
Run Code Online (Sandbox Code Playgroud)
我知道我可以获得alertview的标准内容,例如actionSheet.tag等,但是我如何获得上面创建的文本字段?
我正在尝试向tableview添加一个新单元格,并使用UITextField弹出一个警报,以允许用户输入他们希望为新单元格提供的标题.我有代码在按下"+"按钮时用UITextField弹出警报,以及添加新单元格的代码,但是我不知道如何从UITextField获取文本以将其插入到单元格的标题中.
这是我弹出警报的代码:
UIAlertView* alertPopUp = [[UIAlertView alloc] init];
[alertPopUp setDelegate:self];
[alertPopUp setTitle:@"Enter event title"];
[alertPopUp setMessage:@" "];
[alertPopUp addButtonWithTitle:@"Cancel"];
[alertPopUp addButtonWithTitle:@"OK"];
UITextField * eventNameField = [[UITextField alloc] initWithFrame:CGRectMake(20.0, 45.0, 245.0, 25.0)];
[eventNameField setBackgroundColor:[UIColor whiteColor]];
[alertPopUp addSubview:eventNameField];
[alertPopUp show];
Run Code Online (Sandbox Code Playgroud)
我的alertView操作是:
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
NSString *buttonTitle=[alertView buttonTitleAtIndex:buttonIndex];
if([buttonTitle isEqualToString:@"Cancel"]) {
return;
}
else if([buttonTitle isEqualToString:@"Ok"]) {
}
}
Run Code Online (Sandbox Code Playgroud)
当按下"确定"时,如何从eventNameField获取文本并将其添加到名为eventList的mutablearray中?谢谢!