このサイトを参考にtextViewがキーボードで隠れないようにしているのですがなかなかうまく行きません。
【Xcode】キーボードで隠れないようにスクロール

コードはこのような感じです。

class addScheduleVC: UIViewController {
    var tableView = UITableView()
    var lastKeyboardFrame: CGRect = CGRect.zero
    var editingPath: NSIndexPath!

    override func viewDidLoad() {
        super.viewDidLoad()

        tableView = UITableView(frame: self.view.frame, style: .grouped)
        tableView.delegate = self
        tableView.dataSource = self
   }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
    override func viewWillAppear(_ animated: Bool) {
        tableView.reloadData()
        registerNotification()
    }
    override func viewWillDisappear(_ animated: Bool) {
        super.viewWillDisappear(animated)
        unregisterNotification()
    }

    func registerNotification() -> () {
        let center: NotificationCenter = NotificationCenter.default
        center.addObserver(self, selector: Selector(("keyboardWillShow:")), name: UIResponder.keyboardWillShowNotification, object: nil)
        center.addObserver(self, selector: Selector(("keyboardWillHide:")), name: UIResponder.keyboardWillHideNotification, object: nil)
    }

    func unregisterNotification() -> () {
        let center: NotificationCenter = NotificationCenter.default
        center.removeObserver(self, name: UIResponder.keyboardWillShowNotification, object: nil)
        center.removeObserver(self, name: UIResponder.keyboardWillHideNotification, object: nil)
    }

    func keyboardWillShow(notification: NSNotification) -> () {
        scrollTableCell(notification: notification, showKeyboard: true)
    }

    // Keyboard非表示前処理
    func keyboardWillHide(notification: NSNotification) -> () {
        scrollTableCell(notification: notification, showKeyboard: false)
    }

    // TableViewCellをKeyboardの上までスクロールする処理
    func scrollTableCell(notification: NSNotification, showKeyboard: Bool) -> () {
        if showKeyboard {
            // keyboardのサイズを取得
            var keyboardFrame: CGRect = CGRect.zero
            if let userInfo = notification.userInfo {
                if let keyboard = userInfo[UIResponder.keyboardFrameEndUserInfoKey] as? NSValue {
                    keyboardFrame = keyboard.cgRectValue
                }
            }

            // keyboardのサイズが変化した分ContentSizeを大きくする
            let diff: CGFloat = keyboardFrame.size.height - keyboardFrame.size.height
            let newSize: CGSize = CGSize(width: tableView.contentSize.width, height: tableView.contentSize.height + diff)
            tableView.contentSize = newSize
            lastKeyboardFrame = keyboardFrame

            // keyboardのtopを取得
            let keyboardTop: CGFloat = UIScreen.main.bounds.size.height - keyboardFrame.size.height;

            // 編集中セルのbottomを取得
            let cell: UITableViewCell = tableView.cellForRow(at: NSIndexPath(row: editingPath.row, section: editingPath.section) as IndexPath)!
            let cellBottom: CGFloat
            cellBottom = (cell.frame.origin.y) - tableView.contentOffset.y + cell.frame.size.height;

            // 編集中セルのbottomがkeyboardのtopより下にある場合
            if keyboardTop < cellBottom {
                // 編集中セルをKeyboardの上へ移動させる
                let newOffset: CGPoint = CGPoint(x: tableView.contentOffset.x, y: tableView.contentOffset.y + cellBottom - keyboardTop)
                tableView.setContentOffset(newOffset, animated: true)
            }
        } else {
            // 画面を下に戻す
            let newSize: CGSize = CGSize(width: tableView.contentSize.width, height: tableView.contentSize.height - lastKeyboardFrame.size.height)
            tableView.contentSize = newSize
            tableView.scrollToRow(at: editingPath as IndexPath, at: UITableView.ScrollPosition.none, animated: true)
            lastKeyboardFrame = CGRect.zero;
        }
    }

エラーコードは

keyboardWillHide:]: unrecognized selector sent to instance 0x7fa9bb8b3800'

このような感じです