Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 如何强制键盘保持显示状态?_Iphone_Xcode - Fatal编程技术网

Iphone 如何强制键盘保持显示状态?

Iphone 如何强制键盘保持显示状态?,iphone,xcode,Iphone,Xcode,我有一个iAction,当某人在一个字段中输入完文本时,它被调用。然后我验证输入。如果我确定有错误,我会显示一条消息,希望用户再次输入同一字段。与其让他们选择文本字段来打开键盘(这很好),我只想让键盘保持显示状态 我正在做[SYMBOL成为第一响应者]作为IBAction中的最后一条语句,但键盘仍然会消失。我放错地方了吗?任何帮助都将不胜感激。谢谢 - (IBAction)textFieldDoneEditing:(id)sender { DebugMsg.text = nil;

我有一个iAction,当某人在一个字段中输入完文本时,它被调用。然后我验证输入。如果我确定有错误,我会显示一条消息,希望用户再次输入同一字段。与其让他们选择文本字段来打开键盘(这很好),我只想让键盘保持显示状态

我正在做
[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;
}