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

这篇博客主要介绍了在Swift开发iOS应用时如何处理键盘显示、隐藏,以及配置UITextField的Return键功能。包括点击键盘外区域隐藏键盘,输入框被键盘遮挡时页面自动抬高,以及设置Return键触发特定操作的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

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).floatValue
            UIView.animate(withDuration: TimeInterval(duration), animations: { () -> Void in
                let 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).floatValue
        UIView.animate(withDuration: TimeInterval(duration), animations: { () -> Void in
            self.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()

//设置returnkey
        nameOfCost.delegate = self
        nameOfCost.returnKeyType = .next//此处为设置按键类型
        nameOfCost.tag = 0//设置它的番号
        
        numberOfCost.delegate = self
        numberOfCost.returnKeyType = .done
        numberOfCost.tag = 1

}

添加function来设置returnkey的功能

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值