Iphone 如何强制键盘保持显示状态?
我有一个iAction,当某人在一个字段中输入完文本时,它被调用。然后我验证输入。如果我确定有错误,我会显示一条消息,希望用户再次输入同一字段。与其让他们选择文本字段来打开键盘(这很好),我只想让键盘保持显示状态 我正在做Iphone 如何强制键盘保持显示状态?,iphone,xcode,Iphone,Xcode,我有一个iAction,当某人在一个字段中输入完文本时,它被调用。然后我验证输入。如果我确定有错误,我会显示一条消息,希望用户再次输入同一字段。与其让他们选择文本字段来打开键盘(这很好),我只想让键盘保持显示状态 我正在做[SYMBOL成为第一响应者]作为IBAction中的最后一条语句,但键盘仍然会消失。我放错地方了吗?任何帮助都将不胜感激。谢谢 - (IBAction)textFieldDoneEditing:(id)sender { DebugMsg.text = nil;
[SYMBOL成为第一响应者]
作为IBAction中的最后一条语句,但键盘仍然会消失。我放错地方了吗?任何帮助都将不胜感激。谢谢
- (IBAction)textFieldDoneEditing:(id)sender {
DebugMsg.text = nil;
DebugMsg2.text = nil;
DebugMsg3.text = nil;
NSLog (@"done editing");
NSLog (@"%@", SymbolEntered.text);
if ([SymbolEntered.text isEqualToString:nil])
{
Result.textColor = [UIColor redColor];
Result.text = @"You must enter a symbol!";
[SymbolEntered becomeFirstResponder];
}
else
{
if ([SymbolEntered.text isEqualToString:
[NSString stringWithCString:elements_table2[el_tbl_idx-1].element_symbol]])
{
correct_count++;
Result.textColor = [UIColor greenColor];
Result.text = @"Correct!";
Score.hidden = FALSE;
Score.text = [NSString stringWithFormat:@"Score: %d out of %d - %d Percent", correct_count, el_count+1,
(correct_count*100)/(el_count+1)];
GetNextElementButton.hidden = FALSE;
SymbolEntered.enabled = FALSE;
el_count++;
attempts = max_tries + 1;
}
else
{
Score.hidden = TRUE;
Result.textColor = [UIColor redColor];
if (attempts < max_tries)
{
if (attempts+1 == max_tries)
{
Result.text = @"Sorry, one more try -";
}
else
{
Result.text = @"Sorry, try again - ";
}
GetNextElementButton.hidden = TRUE;
attempts++;
}
else
{
Result.text = [[NSString alloc] initWithFormat: @"Sorry. The correct answer is %@",
[NSString stringWithCString:elements_table2[el_tbl_idx-1].element_symbol]];
Score.hidden = FALSE;
Score.text = [NSString stringWithFormat:@"Score: %d out of %d - %d Percent", correct_count, el_count+1, (correct_count*100)/(el_count+1)];
GetNextElementButton.hidden = FALSE;
SymbolEntered.enabled = FALSE;
el_count++;
}
}
}
[SymbolEntered becomeFirstResponder];
NSLog (@"end of textfieldoneediting");
}
-(iAction)textFieldDoneEditing:(id)发件人{
DebugMsg.text=nil;
DebugMsg2.text=nil;
DebugMsg3.text=nil;
NSLog(@“完成编辑”);
NSLog(@“%@”,符号输入.text);
如果([SymbolEntered.text isEqualToString:nil])
{
Result.textColor=[UIColor redColor];
Result.text=@“您必须输入一个符号!”;
[SYMBOL成为第一响应者];
}
其他的
{
如果([SymbolEntered.text]为相等字符串:
[NSString stringWithCString:elements_表2[el_tbl_idx-1]。element_symbol]]
{
正确的_计数++;
Result.textColor=[UIColor greenColor];
Result.text=@“正确!”;
Score.hidden=FALSE;
Score.text=[NSString stringWithFormat:@“分数:%d(共%d-%d%),正确计数,el计数+1,
(正确计数*100)/(el计数+1)];
GetNextElementButton.hidden=FALSE;
SymbolEntered.enabled=FALSE;
el_count++;
尝试次数=最大尝试次数+1;
}
其他的
{
Score.hidden=TRUE;
Result.textColor=[UIColor redColor];
如果(尝试次数<最大尝试次数)
{
如果(尝试次数+1==最大尝试次数)
{
Result.text=@“对不起,再试一次-”;
}
其他的
{
Result.text=@“对不起,再试一次-”;
}
GetNextElementButton.hidden=TRUE;
尝试++;
}
其他的
{
Result.text=[[NSString alloc]initWithFormat:@“对不起,正确答案是%@”,
[NSString stringWithCString:elements_table 2[el_tbl_idx-1]。element_symbol];
Score.hidden=FALSE;
Score.text=[NSString stringWithFormat:@“分数:%d,共%d-%d”,正确计数,el计数+1,(正确计数*100)/(el计数+1)];
GetNextElementButton.hidden=FALSE;
SymbolEntered.enabled=FALSE;
el_count++;
}
}
}
[SYMBOL成为第一响应者];
NSLog(@“文本字段结束编辑”);
}
稍后尝试调用[textField becomeFirstResponder]吗?还要确保UITextField指针不是nil或其他值。要获得更多帮助,请显示一些代码,很难判断问题出在哪里。您可以在UITextField TextFieldShoulDediting:delegate方法中进行验证。如果您从该回调返回NO,文本字段将仍然是第一响应者,键盘不会消失。(当然,如果尚未将控制器对象设置为文本字段的委托,则必须将其设置为文本字段的委托。)
试试这个,它会退出键盘。我打电话给becomeFirstResponder作为最后一句话。如何显示代码,使其在此网站上正确格式化?代码应在上面。我希望如此。在您的源代码中,
resignFirstResponder
在任何地方调用过吗?不是在这个iAction中,而是在iAction中调用它,以便在显示键盘时进行背景敲击。听起来不错,但我必须承认我在这方面是个新手。我不懂代理业务。你能补充一点关于如何做到这一点或发送给我一些文档,将解释它吗?谢谢,很抱歉延迟回复,但我直到现在才回复。谢谢你的建议。
-(BOOL)textFieldShouldReturn:(UITextField *)textField
{
[textField resignFirstResponder];
return YES;
}