Swift-如何在使用软件键盘时使UITextField可见?

时间:2018-08-02 11:29:02

标签: swift uitextfield focus uikeyboard uitextfielddelegate

我的应用布局页面一直存在问题,我想添加一些文本字段,虽然这样做是可行的,但是其中一些字段不足到屏幕页面,当我输入前两个字段时字段没问题,但是当我进入第三个,第四个和最后一个文本字段时,键盘弹出窗口将其覆盖,并且用户无法看到他们正在键入的内容,如图所示。

有没有一种方法可以使用户单击特定的文本字段(尤其是后三个字段)时,仍然可以看到自己在键入什么内容,而不会如图所示阻止它。

非常感谢您的帮助:)

Picture that shows text fields

Picture that shows blocked text fields

2 个答案:

答案 0 :(得分:1)

您可以使用以下库,在键盘显示时自动调整屏幕的高度。

  1. IQ Key Borad 实现:-在Appdelegate didFinishLaunchingWithOptions中添加了以下代码         IQKeyboardManager.shared.enable = true

注意:-如果您使用IQ键盘工具栏将始终出现在键盘上方

  1. TP KeyBoard (要实现此目的,您应该将scroll / TableView / CollectionView类设置为TPkeyboardAvoidingScrollView / TPkeyboardAvoidingTableView / TPkeyboardAvoidingCollectionView)

OR

您应该使用键盘通知来调整高度限制。

 NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillShow), name: NSNotification.Name.UIKeyboardWillShow, object: nil)
 NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillHide), name: NSNotification.Name.UIKeyboardWillHide, object: nil)

// MARK:-键盘通知

  @objc func keyboardWillShow(_ notification:Notification) {
        if let height = (notification.userInfo![UIKeyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue.height {
                selectedImageViewToBottom.constant = height

        }
    }

    @objc func keyboardWillHide(_ notification:Notification) {
        selectedImageViewToBottom.constant = 0
    }

答案 1 :(得分:0)

使用NotificationCenter跟踪键盘的出现和消失。

您可以在Move textfield when keyboard appears swift上找到它。

您还可以使用https://github.com/hackiftekhar/IQKeyboardManager IQKeyboard管理器库,它们的功能非常好。