Я хочу изменить кадр моего представления, когда клавиатура показывает - PullRequest
0 голосов
/ 17 сентября 2018

Вот моя функция для добавления наблюдателя

func subscribeToKeyboardNotifications() {
    NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillShow), name: .UIKeyboardWillShow, object: nil)
}

но .UIKeyboardWillShow выдает ошибку

UIKeyboardWillShow переименовано в 'UIResponder.keyboardWillShowNotification'

Заменить 'UIKeyboardWillShow' на ' 'UIResponder.keyboardWillShowNotification'

но когда я его заменю

func subscribeToKeyboardNotifications() {
    NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillShow), name: .UIResponder.keyboardWillShowNotification, object: nil)
}

Я получаю эту ошибку

Тип выражения неоднозначен без контекста

Ответы [ 4 ]

0 голосов
/ 17 мая 2019

Просто импортируйте модуль UIKit, потому что UIResponder является частью UIKit, а не Foundation модуля

SWIFT 5 CODE

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        addObservers()
    }

    public func addObservers() {
        NotificationCenter.default.addObserver(self, selector: #selector(handleKeyboardWillShow), name: UIResponder.keyboardWillShowNotification, object: nil)
    }

    @objc func handleKeyboardWillShow(_: Notification) {
        // Here handle keyboard
    }
}
0 голосов
/ 17 сентября 2018

Я использовал это, и отлично работает

NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillShowOrHide(notification:)), name: NSNotification.Name.UIKeyboardWillShow, object: nil);
0 голосов
/ 10 октября 2018
let notificationCenter = NotificationCenter.default

notificationCenter.addObserver(forName: UIResponder.keyboardWillShowNotification, object: nil, queue: nil) { (notification) in
                self.keyboardWillShow(notification: notification)
            }
notificationCenter.addObserver(forName: UIResponder.keyboardWillHideNotification, object: nil, queue: nil) { (notification) in
                self.keyboardWillHide(notification: notification)
            }
0 голосов
/ 17 сентября 2018

без точки

NotificationCenter.default.addObserver(self, 
selector: #selector(keyboardWillShow), 
name: UIResponder.keyboardWillShowNotification, object: nil)
...