更新的UIAlertView
现在有一种样式,允许UIAlertView
中的文本输入字段,即
alert.alertViewStyle = UIAlertViewStylePlainTextInput;
这很好但我想用一个defualt文本初始化输入文本,例如" sample"。
我看到过去的人们使用过无证的api(效果很好)
[alert addTextFieldWithValue:@"sample text" label:@"Text Field"];
但由于这仍然不是正式的Apple公共API,我无法使用它。
还有其他办法吗?我确实尝试在willPresentAlertView
初始化,但文本字段似乎是只读的。
由于
答案 0 :(得分:57)
UIALertView
有一个textFieldAtIndex:
方法,可以返回您想要的UITextField
对象。
对于UIAlertViewStylePlainTextInput
,文本字段的索引为0.
然后,您可以设置文本字段的占位符(或文本)属性:
UIAlertView *alert = ....
UITextField *textField = [alert textFieldAtIndex:0];
textField.placeholder = @"your text";
答案 1 :(得分:9)
简便方法
UIAlertView *alerView = [[UIAlertView alloc] initWithTitle:@"your title" message:@"your message" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"OK", nil];
alerView.alertViewStyle = UIAlertViewStylePlainTextInput;
[[alerView textFieldAtIndex:0] setPlaceholder:@"placeholder text..."];
[alerView show];
答案 2 :(得分:8)
未经测试,但我认为这样可行:
UIAlertView* alert = [[UIAlertView alloc] initWithTitle:...];
UITextField* textField = [alert textFieldAtIndex:0];
textField.text = @"sample";
[alert show];
答案 3 :(得分:6)
要在uiAlertView中设置默认值,这件事就可以了。
UIAlertView *alert = ....
UITextField *textField = [alert textFieldAtIndex:0];
[textField setText:@"My default text"];
[alert show];
答案 4 :(得分:0)
- (IBAction)showMessage:(id)sender {
UIAlertView *message = [[UIAlertView alloc] initWithTitle:@"Add New Category"
message:nil
delegate:self
cancelButtonTitle:@"Add"
otherButtonTitles:@"Cancel", nil];
[message setAlertViewStyle:UIAlertViewStylePlainTextInput];
[message show];
}
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
NSString *title = [alertView buttonTitleAtIndex:buttonIndex];
if([title isEqualToString:@"Add"])
{
UITextField *username = [alertView textFieldAtIndex:0];
NSLog(@"Category Name: %@", username.text);
}
}