如何从alertview中获取textview的值[重复]
Posted
技术标签:
【中文标题】如何从alertview中获取textview的值[重复]【英文标题】:how to get value of textview from alertview [duplicate] 【发布时间】:2013-03-14 10:30:50 【问题描述】:我无法从我的 alertView 中获取 textView 的值
UITextView *textView = [[UITextView alloc]initWithFrame:CGRectMake(12, 50, 260, 100)];
[textView setText:@""];
UIAlertView *av = [[UIAlertView alloc]initWithTitle:@"put text\n\n\n\n\n\n" message:@"" delegate:self cancelButtonTitle:@"Annuler" otherButtonTitles:@"Envoyer",nil];
av.alertViewStyle = UIAlertViewStyleDefault;
[av addSubview:textView];
[av show];
它显示带有textview的alertview视图,它很好,我想得到textview的值我的
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
你能帮帮我吗
【问题讨论】:
你可以在标签的帮助下使用 这可能对您有所帮助:在 ios 5 中,有一个标准化的UIAlertView
,带有一个用于基本输入的文本框。只需像这样设置样式:alert.alertViewStyle = UIAlertViewStylePlainTextInput;
。然后,您可以提取用户输入的内容,如下所示:- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex NSLog(@"Entered: %@",[[alertView textFieldAtIndex:0] text]);
Found here。
【参考方案1】:
声明 textView 以供整个班级使用
@implementation objectTables
UITextView *textView;
然后在你的
textView = [[UITextView alloc]initWithFrame:CGRectMake(12, 50, 260, 100)];
[textView setText:@""];
UIAlertView *av = [[UIAlertView alloc]initWithTitle:@"Push Notification\n\n\n\n\n\n" message:@"" delegate:self cancelButtonTitle:@"Annuler" otherButtonTitles:@"Envoyer",nil];
av.alertViewStyle = UIAlertViewStyleDefault;
[av addSubview:textView];
[av show];
和
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
NSString *textViewText = [textView text];
【讨论】:
【参考方案2】:你可以使用 - (UITextField *)textFieldAtIndex:(NSInteger)textFieldIndex 这将返回 UITextField 的对象。
并从 UITextField 中获取文本。
或者另一种方式是
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
UITextField *TextField = (UITextField *)[alertView viewWithTag:YOURTAG];
【讨论】:
【参考方案3】:你可以试试这个:
UITextView *textView = [[UITextView alloc]initWithFrame:CGRectMake(12, 50, 260, 100)];
[textView setText:@""];
textView.tag = 10;
UIAlertView *av = [[UIAlertView alloc]initWithTitle:@"put text\n\n\n\n\n\n" message:@"" delegate:self cancelButtonTitle:@"Annuler" otherButtonTitles:@"Envoyer",nil];
av.alertViewStyle = UIAlertViewStyleDefault;
[av addSubview:textView];
[av show];
在委托中
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
UITextView *textView = (UITextView *) [alertView viewWithTag:10];
NSString *yourText = textView.text;
【讨论】:
【参考方案4】:只需在 .h 文件中声明您的 UITextView
UITextView *textView;
在.m文件中
textView = [[UITextView alloc]initWithFrame:CGRectMake(12, 50, 260, 100)];
[textView setText:@""];
UIAlertView *av = [[UIAlertView alloc]initWithTitle:@"put text\n\n\n\n\n\n" message:@"" delegate:self cancelButtonTitle:@"Annuler" otherButtonTitles:@"Envoyer",nil];
av.alertViewStyle = UIAlertViewStyleDefault;
[av addSubview:textView];
[av show];
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
//Gives you the Value of UITextView
NSLog(@"%@",[textView text]);
或者您可以将其定义为Extended class
(.m 文件) 中的属性并访问它。
@Interface yourINterfaceName()
@property(nonatomic , retain ) UITextView *textView;
【讨论】:
【参考方案5】:试试这个
UITextView *textView = [[UITextView alloc]initWithFrame:CGRectMake(12, 50, 260, 100)];
[textView setText:@""];
textView.tag =10;
UIAlertView *av = [[UIAlertView alloc]initWithTitle:@"put text\n\n\n\n\n\n" message:@"" delegate:self cancelButtonTitle:@"Annuler" otherButtonTitles:@"Envoyer",nil];
av.alertViewStyle = UIAlertViewStyleDefault;
[av addSubview:textView];
[av show];
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
UITextView *textView = (UITextView *)[alertView viewWithTag:10];
NSLog(@"%@",[textView text]);
【讨论】:
以上是关于如何从alertview中获取textview的值[重复]的主要内容,如果未能解决你的问题,请参考以下文章
我们如何从 javascript 变量中获取 php 变量中的值
如何从 Activity 中获取 Widget 的 TextView 的文本?