目录

1.点击键盘外的区域时键盘隐藏

2.点击输入框时抬高整体页面,防止输入框被键盘遮挡

两个function的添加

viewDidLoad中添加代码

3.Return键的配置

先为class添加UITextFieldDelegate

在viewDidLoad中配置textField的returnkey。

添加function来设置returnkey的功能


1.点击键盘外的区域时键盘隐藏

只需要在工程中添加这个function即可

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {view.endEditing(true)}

2.点击输入框时抬高整体页面,防止输入框被键盘遮挡

两个function的添加

首先添加keyboardWillShowkeyboardWillHide两个function。

 @objc private func keyboardWillShow(sender: NSNotification) {if textField.isFirstResponder {guard let userInfo = sender.userInfo else { return }let duration: Float = (userInfo[UIResponder.keyboardAnimationDurationUserInfoKey] as! NSNumber).floatValueUIView.animate(withDuration: TimeInterval(duration), animations: { () -> Void inlet transform = CGAffineTransform(translationX: 0, y: -180)self.view.transform = transform})}}// キーボードが閉じられた時@objc private func keyboardWillHide(sender: NSNotification) {guard let userInfo = sender.userInfo else { return }let duration: Float = (userInfo[UIResponder.keyboardAnimationDurationUserInfoKey] as! NSNumber).floatValueUIView.animate(withDuration: TimeInterval(duration), animations: { () -> Void inself.view.transform = CGAffineTransform.identity})}

其中textField为UItextField的名称,替换自己的即可。

如果有多个textField需要加入抬高效果,复制if文在其下方并修改textField名称即可。

如果想调整抬高的高度,修改以下部分。修改y的参数,数越小抬得越高。

let transform = CGAffineTransform(translationX: 0, y: -180)

viewDidLoad中添加代码

在viewDidLoad中添加以下代码即可实现该功能。

override func viewDidLoad() {super.viewDidLoad()// Do any additional setup after loading the view.NotificationCenter.default.addObserver(self,selector: #selector(keyboardWillShow(sender:)),name: UIResponder.keyboardWillShowNotification,object: nil)NotificationCenter.default.addObserver(self,selector: #selector(keyboardWillHide(sender:)),name: UIResponder.keyboardWillHideNotification,object: nil)}

3.Return键的配置

先为class添加UITextFieldDelegate

class record: UIViewController, UITextFieldDelegate

在viewDidLoad中配置textField的returnkey。

    @IBOutlet weak var nameOfCost: UITextField!@IBOutlet weak var numberOfCost: UITextField!override func viewDidLoad() {super.viewDidLoad()//设置returnkeynameOfCost.delegate = selfnameOfCost.returnKeyType = .next//此处为设置按键类型nameOfCost.tag = 0//设置它的番号numberOfCost.delegate = selfnumberOfCost.returnKeyType = .donenumberOfCost.tag = 1}

添加function来设置returnkey的功能

func textFieldShouldReturn(_ textField: UITextField) -> Bool {switch textField.tag {case 0:// 在tag是0的textField里,按returnkey执行跳转numberOfCost这个textFieldnumberOfCost.becomeFirstResponder()breakcase 1:// tag是1的textField里什么都不执行breakdefault:break}return true}

Swift中键盘的弹出隐藏,页面抬高,Return键等的配置相关推荐

  1. iOS下Html页面中input获取焦点弹出键盘时挡住input解决方案

    iOS下Html页面中input获取焦点弹出键盘时挡住input解决方案 参考文章: (1)iOS下Html页面中input获取焦点弹出键盘时挡住input解决方案 (2)https://www.cn ...

  2. iOS下Html页面中input获取焦点弹出键盘时挡住input解决方案—scrollIntoView()

    iOS下Html页面中input获取焦点弹出键盘时挡住input解决方案-scrollIntoView() 参考文章: (1)iOS下Html页面中input获取焦点弹出键盘时挡住input解决方案- ...

  3. android中监听软键盘的弹出与隐藏,并获取软键盘的高度

    最近项目中有一个需求上弹出软键盘的时候,输入框位移至输入框上方,但是Activity中其他的VIew都不动.这个需求需要监听软软键盘的弹出与隐藏,并获取键盘的高度.上网找了一下发现,Android竟然 ...

  4. 解决微信小程序IOS中使用picker弹出内容和手机软键盘重叠的问题

    解决微信小程序IOS中使用picker弹出内容和手机软键盘重叠的问题 项目需求: 一个信息提交页面:有input输入框,有picker选择器 遇到的问题: 点击input输入框时,手机自动弹出键盘,但 ...

  5. 移动端网站,键盘弹出对页面的影响

    在移动端网站中,ios与安卓键盘弹出时对页面有不同的处理方式. ios,键盘弹出但整体页面高度不变. 安卓,页面高度=屏幕高度-键盘高度 这样对页面样式就会造成不同的影响. 当有表单弹窗,且弹窗高度在 ...

  6. js防止安卓手机软键盘弹出挤压页面导致变形的方法

    h5防止安卓手机软键盘弹出挤压页面导致变形的方法 输入框定位在底部,手机端打开,输入框聚焦后软键盘打开为什么会瞬间自动关闭呢? 先看看问题: 1.原来是这样的: 2.在苹果手机里面是正常的: 3.到了 ...

  7. 弹出框页面中使用jquery.validate验证控件

    弹出框页面中使用jquery.validate验证控件有几个问题需要解决: 1,弹出框的提交事件完成后如何关闭弹出框页面? 2,提交不成功如何返回当前页? 3,如果知道验证事件成功? 之前笔者都是JS ...

  8. h5页面键盘弹出影响页面布局(兼容)

    其实弹框之所以影响页面布局,我碰到的一般都是因为页面时position:fixed时,键盘一弹出,布局就乱了,我的解决方案是,首先就是把fixed尽可能的改成其他的,接着监听窗口大小变化事件,然后处理 ...

  9. android判断键盘是否弹出窗口,Android判断软键盘弹出并隐藏的简单完美解决方法(推荐)...

    最近项目中有一个编辑框,下面是个ListView.在触发编辑框弹出软键盘后,ListView还能滑动,并且ListView的item还能响应单击.这样的体验效果很不好.于是便想在滑动或单击item时判 ...

最新文章

  1. Mycat实现垂直拆分与水平拆分
  2. 从 no-code 到 low-code 再到 pro-code
  3. 基於IIS的WCF的分布式多層架構開發實現
  4. Android adb命令,linux中各种命令
  5. mysql drbd pacemaker_corosync+pacemaker+mysql+drbd 实现mysql的高可用
  6. 【quickhybrid】JSBridge的实现
  7. [html] 你有使用过ins标签吗?说说它的用途
  8. idea看更改过的代码_就是你把所有代码全写在一个类里的?
  9. PyTorch 1.0 中文官方教程:使用字符级别特征的 RNN 网络进行姓氏分类
  10. mysql scws_php利用scws实现mysql全文搜索功能的方法
  11. 7月最新发布10.2.0.4.5 Patch Set Update
  12. 纯java生成验证码 java生成图片并保存
  13. php网上商城拟解决的问题是,上次说的软件商城BUG,已找到问题,并解决~
  14. 学习webpack系列之三 ---- (输出管理)
  15. 最新 CCF A 类人工智能会议论文下载汇总 (含2022)
  16. 你的工作表现是否成熟,用这4条检验自己
  17. Python软件编程等级考试二级——20211205
  18. vue项目首屏加载优化
  19. org.wltea.analyzer.lucene.IKAnalyzer(IK分词器)
  20. Altium Designer -- EMC/EMI电路设计经验

热门文章

  1. 0范数,1范数,2范数
  2. 数据同步工具—sqoop 2.x
  3. 通过IDEA进行class文件代码反编译
  4. Redhat镜像-RHEL-官方镜像下载大全
  5. hdu-5761 Rower Bo(数学)
  6. notify()和 notifyAll()有什么区别
  7. Berkeley DB(BDB)介绍
  8. 服务器dns显示fec,服务器dns地址fec0
  9. 上海Java开发待遇 、上海软件开发待遇、上海项目经理待遇,群硕待遇,爱立信待遇、恒生电子待遇
  10. 数据挖掘技术及其应用现状