在桌子外面敲击时解除键盘

时间:2013-02-25 07:11:16

标签: ios uitableview uikeyboard

在你将我的问题视为与此问题的重复之前:iphone, dismiss keyboard when touching outside of UITextField 对我来说问题是我的textfield是我的原型单元格的一部分,它有自己的uitableview单元的子类,所以我不确定如何在尝试辞职第一个响应者时引用文本字段。所以,我不能这样做:

 -(void)dismissKeyboard {
   [aTextField resignFirstResponder];
}

我如何应对这种情况?

由于

3 个答案:

答案 0 :(得分:1)

试试这段代码,它非常有用:

-(void)touchesBegan :(NSSet *)touches withEvent:(UIEvent *)event

{

    [aTextField resignFirstResponder];

    [super touchesBegan:touches withEvent:event];

}

答案 1 :(得分:0)

我认为在桌面视图单元格外部轻击时解雇键盘并不好。用户可能会意外地触摸外面或者他可以在输入文本时滚动吗?您可以使用UITextFieldDelegate关闭键盘

- (BOOL)textFieldShouldReturn:(UITextField *)textField
 {
   [textField resignFirstResponder]
 }

答案 2 :(得分:0)

如果我说得对,你想要在textfield之外点击键盘诡计,但你没有引用textfield

试试这个;

  • 使用全局textField,我们称之为reftextField
  • 现在textFieldDidBeginEditing将参考文本字段设置为

    - (void) textFieldDidBeginEditing:(UITextField *)textField{
        reftextField = textField;
    }
    
  • 现在您可以愉快地使用任何按钮时钟,(在开始编辑时添加透明按钮推荐)

    - (void)dismissKeyboard {
          [reftextField resignFirstResponder];
    }
    
  • 或者对于辞职完成按钮试试这个。

    //for resigning on done button    
    - (BOOL) textFieldShouldReturn:(UITextField *)textField{
        [textField resignFirstResponder];
        return YES;
    }