可能是一个简单的答案,
如何从其中包含文本字段的UIAlertView传递dimvec(i)
到textField.text
我尝试创建一个属性NSString并使其等于-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
并尝试textField.text
它并且它返回NSLog
答案 0 :(得分:3)
要检索UIAlertView
中文本字段的文本,您可以使用textFieldAtIndex:
方法。您根本不需要参与文本字段委托。
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
UITextField *textField = [alertView textFieldAtIndex:0]; // adjust the index if you have more than one text field.
NSLog(@"Text: %@", textField.text);
}
<击> 你有几个选择。
将对文本字段的引用存储为属性,您似乎已经在这样做了。
@property (nonatomic, weak) IBOutlet UITextField *textField;
然后可以直接从UIAlertView
委托方法访问它,假设委托是具有对文本字段的引用的同一对象:
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
NSLog(@"Text: %@", self.textField.text);
}
如果由于某种原因您没有引用文本字段,可以从textFieldDidEndEditing:
委托方法获取,首先创建一个属性来存储文本:
@property (nonatomic, copy) NSString *textFieldText;
然后在调用文本字段委托方法时更新。
- (void)textFieldDidEndEditing:(UITextField *)textField {
self.textFieldText = textField.text;
}
然后,您可以使用UIAlertView
委托方法访问此媒体资源:
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
NSLog(@"Text: %@", self.textFieldText);
}
击> <击> 撞击>
答案 1 :(得分:1)
此代码对我有用:
UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"" message:[NSString stringWithFormat:@"Do you want to call?"] delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"OK", nil];
alert.alertViewStyle = UIAlertViewStylePlainTextInput;
UITextField * alertTextField = [alert textFieldAtIndex:0];
alertTextField.keyboardType = UIKeyboardTypeNumberPad;
[alertTextField setTextAlignment:NSTextAlignmentCenter];
[alert show];
和代表:
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
if (buttonIndex==1) {
return;
}
UITextField *title1;// = [alertView textFieldAtIndex:0];
title1= [alertView textFieldAtIndex:0];
NSString *messageStr = title1.text;
if ([messageStr isEqualToString:@""]) {
return;
}}
答案 2 :(得分:0)
你只需要声明NSString对象 @interface LoginDialogVC() { NSString strText; } @end
@implementation LoginDialogVC
-(void)textFieldDidEndEditing:(UITextField *)textField {
strText = textField.text;
}
之后,只要你想使用它就使用strText。