键盘停止显示UIToolbar

问题描述 投票:0回答:1

我的视图上有一个UITextView,可以通过按下键盘工具栏上的完成按钮来关闭键盘。此按钮还在文本上执行保存。直到我应用程序的最新版本为止,整个过程一直运行良好。我不知道发生了什么事。我怀疑问题出在将我的应用程序向后兼容到iOS 11.0版本。但是后来我再次尝试了更高的开发目标,结果是一样的。构建最新更新时,我没有触摸此视图的代码,因此我不确定是什么原因导致了问题。我的代码的相关部分:

let textView: UITextView = {
    let tw = UITextView()
    tw.font = Font.kohinoorTeluguMedium_20
    tw.returnKeyType = .default
    tw.isScrollEnabled = true
    tw.keyboardDismissMode = .interactive
    tw.translatesAutoresizingMaskIntoConstraints = false
    return tw
  }()


fileprivate func setupKeyboardToolbar() {
    let keyboardToolBar = UIToolbar(frame: CGRect(x: 0, y: 0, width: 100, height: 100))
      keyboardToolBar.translatesAutoresizingMaskIntoConstraints = false
        keyboardToolBar.sizeToFit()

        let doneButton = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(handleDoneButton))
    keyboardToolBar.items = [doneButton]
    self.textView.inputAccessoryView = keyboardToolBar
       textView.delegate = self  
//        self.textView.autoresizingMask = .flexibleHeight
    keyboardToolBar.layoutIfNeeded()
    keyboardToolBar.isHidden = false
}

override func viewDidLoad() {
    super.viewDidLoad()

    setupKeyboardToolbar()

    tableView.register(DetailCell.self, forCellReuseIdentifier: cellId)
    tableView.backgroundColor = AdaptiveColors.tableViewBackgroundColor
    tableView.separatorColor = AdaptiveColors.tableViewBackgroundColor
    setupDismissButton()

    let editButton = UIBarButtonItem(title: LocalizedString.edit, style: .plain, target: self, action: #selector(handleEdit))
    editButton.tintColor = .white
    navigationItem.rightBarButtonItem = editButton

}
 @objc func handleDoneButton() {
    let context = CoreDataManager.shared.persistentContainer.viewContext
    lesson?.notes = textView.text
    do {
        try context.save()
    } catch let savErr {
        print("Error saving context \(savErr)")
    }
    textView.resignFirstResponder()
}

func textViewDidChange(_ textView: UITextView) {
    tableView.beginUpdates()
    tableView.endUpdates()
}

func textViewShouldBeginEditing(_ textView: UITextView) -> Bool {
return true
}
}

[阅读了相关的stackOverflow答案之后,我尝试在layoutIfNeeded()上调用isHidden = falsekeyboardToolbar,但是没有运气。还尝试了设置self.textView.autoResizingMask = .flexibleHeight的过程,但是没有运气。还尝试将keyboardToolbar的委托设置为self,并将自己声明为UIToolbarDelegate。感谢任何人的帮助!

ios swift uitextview uitoolbar
1个回答
0
投票

[好,我已修复它,这是一个愚蠢的错误,我有时忽略了它。我在自动布局方面遇到了一些问题,因此我将此textView对象移到了自定义单元格类中,而不是视图控制器中。然后我在VC的indexPath方法中与cellForRow中的textView进行了交谈,但是我忘了在单元格类中设置工具栏。我在视图控制器中仍然有textView和工具栏设置。我已经解决了这个问题,方法是在自定义单元格中移动设置,然后在自定义单元格和vc之间创建一个委托模式,以节省笔记。

© www.soinside.com 2019 - 2024. All rights reserved.