Ios 键盘停止显示UIToolbar
我的视图中有一个UITextView,按下键盘工具栏上的“完成”按钮可以关闭键盘。此按钮还对文本执行保存操作。在我的应用程序的最新版本发布之前,整个程序一直运行良好。我不知道发生了什么事。我怀疑问题在于将我的应用向后兼容到iOS 11.0版。但后来我又尝试了更高的发展目标,结果是一样的。在构建最新更新时,我没有触及此视图的代码,因此我不确定是什么导致了问题。我的代码的相关部分:Ios 键盘停止显示UIToolbar,ios,swift,uitextview,uitoolbar,Ios,Swift,Uitextview,Uitoolbar,我的视图中有一个UITextView,按下键盘工具栏上的“完成”按钮可以关闭键盘。此按钮还对文本执行保存操作。在我的应用程序的最新版本发布之前,整个程序一直运行良好。我不知道发生了什么事。我怀疑问题在于将我的应用向后兼容到iOS 11.0版。但后来我又尝试了更高的发展目标,结果是一样的。在构建最新更新时,我没有触及此视图的代码,因此我不确定是什么导致了问题。我的代码的相关部分: let textView: UITextView = { let tw = UITextView()
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答案后,我尝试调用键盘工具栏上的layoutifneed()
和ishiden=false
,但没有成功。还尝试设置了self.textView.autoResizingMask=.flexibleHeight
,但没有成功。还尝试将keyboardToolbar
的委托设置为self
,并将self声明为UIToolbarDelegate
。
谢谢任何人的帮助 好吧,我已经修好了,这是一个愚蠢的错误,我在某个时候忽略了。
我在自动布局方面遇到了一些问题,所以我将这个textView对象移动到我的自定义单元格类,而不是视图控制器。然后,我在VC的indexPath方法中与cellForRow中的textView交谈,但我忘记在cell类中设置工具栏。我仍然在视图控制器中设置了textView和工具栏。
我已经解决了这个问题,通过移动自定义单元格类中的设置,然后在自定义单元格和vc之间创建一个委托模式,以使注释保存成为可能