touchesBegan EndEditing不起作用

时间:2014-06-16 11:39:40

标签: ios uitextfield uitextview uitextviewdelegate

我在视图中有一些文本字段,还有一个textView,我想要做的是在编辑停止后通过这些UI元素进行选项卡,并且元素将状态重新设置为FirstResponder。

//点击屏幕上空白区域的代码,以便键盘消失

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
   [self.view endEditing:YES];    
} 

//文本字段现在应该是文本区域应该结束编辑后的第一个响应者

-(BOOL)textViewShouldEndEditing:(UITextView *)textView{
    [self.txtNumber becomeFirstResponder];
    return YES;
}

在执行以下步骤后出现问题 1. textView成为第一响应者 2.在textview外部点击作为第一响应者 3. txtNumber成为第一响应者并出现numpad 4.轻拍外面。 现在键盘不会消失

2 个答案:

答案 0 :(得分:1)

使用:

@implementation ViewController
    NSNumber *tabCount;

    -(void) viewDidLoad
    {
       tabCount = 0;
    }

   -(void)textViewDidBeginEditing:(UITextView *)textView
    {
        if([tabCount integerValue] ==0)
         [self.txt0 becomeFirstResponder];
        if([tabCount integerValue] ==1)
          {
           [self.txt0 resignFirstResponder];
           [self.txt1 becomeFirstResponder];
           }
        return YES;
     }
    - (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
     {
          if ([text isEqualToString:@"\n"]) 
               tabCount = tabCount + 1;
     }
@end

可以使用以下方法为UITextField完成相同的概念:

    -(void)textFieldDidBeginEditing:(UITextField *)textField 
    -(BOOL)textFieldShouldReturn:(UITextField*)textField

答案 1 :(得分:0)

尝试以下方法 可能有用

如果您使用的是现有模型视图控制器

- (BOOL)disablesAutomaticKeyboardDismissal {

return NO;

}