当触摸textView本身的任何地方时关闭键盘

问题描述:

我有一个TextView,并且我想隐藏键盘,当触摸屏幕上的任何地方包括textView本身请给出一些建议。当触摸textView本身的任何地方时关闭键盘

我不是Objective-C的专家,但是对我有用的是将一个UITapGesterRecognizer拖到Interface Builder中的视图中,然后在我的.h文件中创建IBOutlet,并在我的.m文件中创建IBAction。我使用的XCode 5和iOS 7 - 见下文:

.h文件中

@property (strong, nonatomic) IBOutlet UITapGestureRecognizer *dismissKeyboard; 

.m文件

- (IBAction)dismissKeyboard:(UITapGestureRecognizer *)sender { 

    [self.view endEditing:YES]; 
} 

endEditing:此代码的一部分驳回键盘。从苹果公司的documentation

endEditing使视图(或嵌入文本字段中的一个),以 辞职第一响应状态。

至于攻丝“textView本身” - 我不知道如何做到这一点,并关闭键盘。出于好奇,你为什么要这样的功能?

+1

您不需要创建属性。只需将Tap Gesture Recognizer拖动到您的视图中并链接到该操作即可。非常高雅的解决方案 – jomafer

在UIViewController子类的基本逻辑是

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