gpt4 book ai didi

ios - 键盘停止显示 UIToolbar

转载 作者:行者123 更新时间:2023-11-29 05:15:57 28 4
gpt4 key购买 nike

我的 View 上有一个 UITextView,并且可以通过按键盘工具栏上的完成按钮来关闭键盘。此按钮还对文本执行保存。在我的应用程序的最新版本之前,整个事情都运行得很好。我不明白发生了什么事。我怀疑问题在于将我的应用程序设置为 iOS 版本 11.0 的向后兼容性。但后来我又尝试了更高的发展目标,结果还是一样。我在构建最近的更新时没有触及此 View 的代码,所以我不确定是什么原因导致了问题。我的代码的相关部分:

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 答案后,我尝试在 keyboardToolbar 上调用 layoutIfNeeded()isHidden = false,但没有成功。还尝试设置 self.textView.autoResizingMask = .flexibleHeight ,但没有成功。还尝试将 keyboardToolbar 的委托(delegate)设置为 self,并将 self 声明为 UIToolbarDelegate。感谢任何人的帮助!

最佳答案

好的,我已经修复了它,这是我在某个时候忽略的一个愚蠢的错误。我在自动布局方面遇到了一些问题,因此我将此 textView 对象移动到我的自定义单元格类,而不是 View Controller 。然后我在 VC 的 indexPath 方法中与 cellForRow 中的 textView 进行对话,但我忘记在单元类中设置工具栏。我仍然在 View Controller 中设置了 TextView 和工具栏。我通过移动自定义单元格中的设置,然后在自定义单元格和 vc 之间创建委托(delegate)模式来解决此问题,以使注释保存成​​为可能。

关于ios - 键盘停止显示 UIToolbar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59183762/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com