【发布时间】:2018-12-29 08:56:35
【问题描述】:
我的应用中有一个类似聊天的 UI,所以我有一个底栏,即 inputAccessoryView 和我的 tableView。我想要做的是在键盘在屏幕上和屏幕外时正确调整 tableView 的大小。但是,简单地将 tableView 的底部限制到 inputAccessoryView 的顶部似乎是不可能的。那么如何在我的应用中实现这种类似消息的行为呢?
viewDidLoad() 用于我的控制器
override func viewDidLoad() {
super.viewDidLoad()
noteTableView.transform = CGAffineTransform(rotationAngle: -(CGFloat)(Double.pi));
noteTableView.keyboardDismissMode = .interactive
noteTableView.delegate = self
noteTableView.dataSource = self
[...]
}
这是让我的 inputAccessoryView 实际工作的两个函数
override var inputAccessoryView: UIView? {
get {
return inputBar
}
}
override var canBecomeFirstResponder: Bool {
return true
}
我在 inputAccessory 内的 textField 上也有一个点击手势识别器,它将其行为从“按钮”切换到正确的文本字段,所以这里有一点。
@objc func newButtonTapped(tapGestureRecognizer: UITapGestureRecognizer) {
[...]
inputBar.inputField.isSelectable = true
inputBar.inputField.isEditable = true
inputBar.inputField.becomeFirstResponder()
[...]
}
【问题讨论】:
标签: swift keyboard tableview dismiss inputaccessoryview