如何通过点击任何地方解除数字键盘键盘

jsa*_*osj 51 iphone xcode numbers uitextfield ios

我想知道最简单的代码,当点击数字键盘外的任何地方时,它会关闭数字键盘键盘.在文本字段中输入数字是一个简单的应用程序,然后用户可以在用户完成在文本字段上键入数字后关闭键盘.谢谢!:)

Fil*_*lic 85

将文本字段声明为实例变量或属性(如果尚未实现)并实现这样的简单方法:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{
    [textField resignFirstResponder];
}
Run Code Online (Sandbox Code Playgroud)

会做得很好.

  • 如果用户点击另一个控件(而不是背景),它不能很好地工作. (4认同)
  • 谢谢你这个fichek.这是解雇键盘的最简单方法.:) (2认同)

Gaj*_*han 21

试试这个方法,

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

现在点击任何地方,看到键盘将解散.:-)

  • 这比接受的答案要好. (6认同)
  • 我不知道我是如何错过这个API调用的,但这是最正确的答案. (3认同)

abd*_*har 7

快速使用以下代码

override func touchesBegan(touches: NSSet, withEvent event: UIEvent)
 {
       textFiled.resignFirstResponder()
 }
Run Code Online (Sandbox Code Playgroud)

查看以下链接的最新更新


rpt*_*thi 6

触摸背景以关闭键盘

如果您还没有,请转到Xcode.我们需要在控制器类中再添加一个动作.将以下行添加到Control_FunViewController.h文件中:

#import <UIKit/UIKit.h>
@interface Control_FunViewController : UIViewController { 
UITextField *nameField;
UITextField *numberField;
}
 @property (nonatomic, retain) IBOutlet UITextField *nameField; ]
@property (nonatomic, retain) IBOutlet UITextField *numberField; 
- (IBAction)textFieldDoneEditing:(id)sender; 
- (IBAction)backgroundTap:(id)sender; 
@end  
Run Code Online (Sandbox Code Playgroud)

保存头文件; 切换到实现文件,并添加此代码,它只是告诉两个文本字段,如果有的话,它们会产生第一个响应者状态.在不是第一个响应者的控件上调用resignFirstResponder是完全安全的,因此我们可以安全地在两个文本字段上调用它,而无需检查是否是第一个响应者.

- (IBAction)backgroundTap:(id)sender { 
[nameField resignFirstResponder]; 
[numberField resignFirstResponder];
}
Run Code Online (Sandbox Code Playgroud)

提示保存此文件,然后返回Interface Builder.我们现在需要更改nib视图的基础类.如果你看一下笔尖的主窗口,你会发现该视图中有三个图标.第三个叫做View,是我们的nib的主视图,它将所有其他控件和视图保存为子视图.单击名为View的图标,该图标表示我们的nib容器视图.按␣4调出身份检查员.这是我们可以在Interface Builder中更改任何对象实例的基础类的地方.

在编写代码时,您将在标题和实现文件之间进行大量切换.幸运的是,Xcode有一个组合键,可以快速切换这些文件.默认的组合键是␣␣␣(选项命令向上箭头),尽管您可以使用Xcode的首选项将其更改为您想要的任何内容.

标有Class的字段目前称为UIView.将其更改为读取UIControl.所有能够触发动作方法的控件都是UIControl的子类,因此通过更改底层类,我们刚刚给出了这个视图触发动作方法的能力.您可以通过按␣2来启用连接检查器来验证这一点.

从Touch Down事件拖动到File的Owner图标,然后选择backgroundTap: action.现在,在没有主动控件的情况下触摸视图中的任何位置将触发我们的新操作方法,这将导致键盘缩回.

注意保存笔尖,让我们回去尝试一下.再次编译并运行您的应用程序.这一次,键盘应该不仅在点击完成按钮时消失,而且当您点击不是活动控件的任何地方时,键盘应该消失,这是用户期望的行为.

  • 谢谢你先生rptwsthi!:)感谢你的帖子. (5认同)