Swift - UITextField完成输入后关闭软键盘

总结了以下几种方式,欢迎补充

 1,为空白区域绑定Touch Up Inside事件

 2,重写touchesEnded方法

 3,为TextField绑定Did End On Exit事件

一、点击编辑区域以外的地方时关闭(空白处区域绑定Touch Up Inside事件)

    新建一个项目,打开Main.storyboard,添加一个Text Field,与ViewController建立连接,然后点击空白处,在右边窗口修改Custom Class 的class改为UIControl

     

   然后为UIControl绑定Touch Up Inside事件(只有改为UIControl后才能绑定事件)

   

  ViewController:

import UIKit

class ViewController: UIViewController {

    @IBOutlet var name: UITextField!
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    @IBAction func CloseKeyBoard(sender: AnyObject) {
        name.resignFirstResponder();
    }

}

二、点击编辑区域以外的地方时关闭(重写touchesEnded)

        只需要在ViewController里重写touchesEnded方法

//触摸事件,当一个或多个手指离开屏幕时触发
    override func touchesEnded(touches: Set<NSObject>, withEvent event: UIEvent) {
        name.resignFirstResponder();
    }

  

三、点击软键盘右下角的Done/Go/Next...关闭键盘(为TextField绑定Did End On Exit事件)

   选择Main.storyboard中的Text Field,按住control拖拉的方式为其绑定Did End On Exit事件     

   

 @IBAction func DoneCloseKeyBoard(sender: AnyObject) {
        name.resignFirstResponder();
    }

  

时间: 2024-10-23 13:00:56

Swift - UITextField完成输入后关闭软键盘的相关文章

iOS UITextField完成输入后关闭键盘的方法总结

// //  ViewController.swift //  UITextField完成输入后关闭键盘的方法 // //  Created by 悦兑科技 on 15/1/19. //  Copyright (c) 2015年 BSY. All rights reserved. // import UIKit class ViewController: UIViewController,UITextFieldDelegate { var textF = UITextField() overri

UITextField完成输入后关闭键盘的方法

iPhone的键盘是基于软件,而不是物理键盘的,因此需要一些额外的步骤来确保用户在完成输入后关闭键盘.1.通过点击Return按钮关闭键盘当用户按下Return按钮时,将触发“did end on exit”事件,此时我们需要让文本字段取消控件,以关闭键盘.在控制器类头文件中加入一个操作方法 -(IBAction)textFieldDoneEditing:(id)sender; 在相应的.m文件中实现该方法 -(IBAction)textFieldDoneEditing:(id)sender{[

Android开发:在EditText中关闭软键盘 转来的

1.EditText有焦点(focusable为true)阻止输入法弹出 Java代码   editText=(EditText)findViewById(R.id.txtBody); editText.setOnTouchListener(new OnTouchListener() { public boolean onTouch(View v, MotionEvent event) { editText.setInputType(InputType.TYPE_NULL); // 关闭软键盘

Android开发:在EditText中关闭软键盘

1.EditText有焦点(focusable为true)阻止输入法弹出 Java代码   editText=(EditText)findViewById(R.id.txtBody); editText.setOnTouchListener(new OnTouchListener() { public boolean onTouch(View v, MotionEvent event) { editText.setInputType(InputType.TYPE_NULL); // 关闭软键盘

android 点击关闭软键盘

在项目中,editText获取焦点后,会自动弹出软键盘,关闭的时候一般需要按返回键或者点击软键盘上的按钮, 即使当前activity已经finish掉,软键盘依然存在,会影响用户的体验. 网上目前有很多很详细的办法,比如点击其他空白区域,软键盘就会消失之类的方法,我们项目中没有要求这个,要求的是只要 不遮挡其他操作,还有当前Activity关闭掉后软键盘消失就行, 今天给大家分享两个办法: //此方法,如果显示则隐藏,如果隐藏则显示 private void hintKbOne() { Inpu

安卓工具类--------&gt;打开或关闭软键盘

import android.content.Context; import android.view.inputmethod.InputMethodManager; import android.widget.EditText; //打开或关闭软键盘 public class KeyBoardUtils { /** * 打卡软键盘 * * @param mEditText输入框 * @param mContext上下文 */ public static void openKeybord(Edi

Android自动打开和关闭软键盘

现在有一个需求是说希望可以自动的隐藏和打开软键盘,场景是使用在alert dialog中有一个文本框,弹出dialog同时自动弹出键盘,编辑后点击完成直接关闭.使用的方式是: inputManager.showSoftInput(tvEditor,  InputMethodManager.SHOW_FORCED); 如果使用参数InputMethodManager.SHOW_IMPLICIT,就不会自动弹出键盘,但是使用SHOW_FORCED后使用各种方法都无法自动关闭键盘,必须按back键.

360浏览器文本框获得焦点后被软键盘遮罩的问题

场景是这样的,站点上筛选按钮点击后弹出层(fixed),当输入框获取焦点以后弹出系统自带的软键盘,在android上十款浏览器挨个测试比对,发现在360浏览器弹出键盘以后获取焦点的文本框被软键盘覆盖了.截图如下                      (未获取软键盘焦点的情况)               (chrome浏览器调起软键盘的情况)            (360浏览器调起软键盘情况) 那么问题来了,浏览器的软键盘显示出来又哪几种情况呢?英文  中文(网上找的) 经过简单的了解,大

IOS关闭软键盘的方法

1 .实现 UITextFieldDelegate协议 .m文件里面实现 - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{ if(![self.textfild isExclusiveTouch]){ [self.textfild resignFirstResponder]; } } 方法,放弃第一响应者的身份,点击空白处即可推出软键盘 2.监听软键盘的return键,点击return可以返回 - (BOOL)te