2013-02-25 72 views
0

在你解雇我的问题之前,这是一个重复的问题:iphone, dismiss keyboard when touching outside of UITextField 问题是我的文本字段是我的原型单元的一部分,它有它自己的uitableview单元的子类,所以我不知道如何在尝试辞退第一个响应者时参考文本字段。所以我不能这样做:关闭在桌面上敲击键盘

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

我该如何解决这种情况?

感谢

+0

你可以,如果你一个'UITextField'财产加起来就是你的'UITableViewCell'子类并将其连接属性为你在你的原型创建的文本字段。 – 2013-02-25 07:21:31

+0

@斯科特,我已经这样做了。我将如何引用它,因为这个关闭键盘是我的视图控制器类的一部分,而不是uitableviewcell子类。 – 2013-02-25 07:34:08

+0

检查此响应:http://stackoverflow.com/a/15160559/656600 – rptwsthi 2013-03-01 14:53:02

回答

1

试试这个代码,这是非常有用的:

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

{ 

    [aTextField resignFirstResponder]; 

    [super touchesBegan:touches withEvent:event]; 

} 
+0

touchesBegan不适合我,因为我的表视图是在滚动视图内。 – 2013-02-25 07:23:19

0

我认为在表视图细胞外敲击键盘解雇并不好。用户可能会不小心碰到外面,或者他可以在输入文字时滚动吗?您可以使用UITextFieldDelegate到dissmiss键盘

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

Anil请仔细阅读我的问题。我试图按照这些说明:http://stackoverflow.com/questions/5306240/iphone-dismiss-keyboard-when-touching-outside-of-textfield – 2013-02-25 07:20:29

+0

嗯..也许,但我需要做到这一点基于我的设计。你能帮助我吗? – 2013-02-25 07:39:43

0

如果我得到了你的权利,你要辞职键盘诡计敲击的textfield外面,但你没有你的textfield的参考。

试试这个;

  • 采取全球文本框,让在textFieldDidBeginEditing集引用文本字段称它为现在reftextField
  • - (void) textFieldDidBeginEditing:(UITextField *)textField{ 
        reftextField = textField; 
    } 
    
  • 现在你可以快乐地在任何按钮时钟使用,(上增加一个透明的按钮开始编辑推荐)

    - (void)dismissKeyboard { 
         [reftextField resignFirstResponder]; 
    } 
    
  • 或为辞职完成按钮尝试此操作。

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