我有UIAlertView,它在加载视图时显示。
av = [[UIAlertView alloc]initWithTitle:@"New Password" message:@"please enter a new passward" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"done", nil];
av.alertViewStyle = UIAlertViewStyleSecureTextInput;
[av becomeFirstResponder];
[av show];
然而,键盘没有显示在iPad或模拟器上?
我也试过
我刚试过
[av becomeFirstResponder];
以及
UITextField *text = [alertView textFieldAtIndex:0];
[text becomeFirstResponder];
我刚尝试了这段代码,它记录了textField是第一个响应者,但仍然没有键盘。
if([[av textFieldAtIndex:0] isFirstResponder] == YES){
NSLog(@"av is the first responder.");
}
答案 0 :(得分:3)
向第一响应者发出警报无济于事。您需要在警报视图中将te文本框设置为第一个响应者。
修改强>
您可能需要致电reloadInputViews
(有或没有s,不记得了)。还要仔细检查您是否在任何可能破坏它们的位置更改输入视图。
编辑2:
您可能希望将警报从viewDidLoad移动到viewDidAppear。我已经看到过早更新/呈现UI元素的问题。我认为这是其中一个案例。
答案 1 :(得分:1)
使用
av = [[UIAlertView alloc]initWithTitle:@"New Password" message:@"please enter a new passward" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"done", nil];
av.tag=1;
av.alertViewStyle = UIAlertViewStyleSecureTextInput;
[av show];
并使用此方法。
- (void)alertView:(UIAlertView *)alertViews clickedButtonAtIndex:(NSInteger)buttonIndex
{
if (alertViews.tag==1)
{
[textfieldname becomeFirstResponder];
}
}
答案 2 :(得分:1)
这是有效的
self.alertView = [[UIAlertView alloc]initWithTitle:@"Login" message:@"Please enter you mobile number" delegate:self cancelButtonTitle:@"Okay" otherButtonTitles:nil];
self.alertView.alertViewStyle=UIAlertViewStylePlainTextInput;
[alertView show];
但不是这个
UIAlertView* alertView = [[UIAlertView alloc] init];
[alertView initWithTitle:...]
答案 3 :(得分:0)
av = [[UIAlertView alloc]initWithTitle:@"New Password" message:@"please enter a new passward" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"done", nil];
UITextField *tf = [[UITextField alloc] initWithFrame:CGRectMake(12, 45, 260, 25)];
CGAffineTransform Transform = CGAffineTransformMakeTranslation(0, 60);
[tf setBackgroundColor:[UIColor whiteColor]];
[av setTransform:Transform];
[av addSubview:tf];
[av show];
这可以,但您应该可以在IOS 5中使用UIAlertViewStyleSecureTextInput进行此操作吗?
答案 4 :(得分:0)
我有同样的问题,但我的解决方案看起来可能不适用于原创海报...
我有这段代码:
UIAlertView* alert = [[UIAlertView alloc] init];
[alert initWithTitle:...]
运行时,没有键盘出现。
我将其更改为此,现在出现键盘:
UIAlertView* alert = [[UIAlertView alloc] initWithTitle:...];
创建警报后执行init似乎将对象的内部状态保留为“此对象不需要键盘!”