我在我的视图控制器中显示一个弹出窗口,弹出窗口包含一个tableview和一个文本框,所以当我点击文本框时,弹出窗口的高度保持不变。所以我想在单击文本框时减小弹出视图的高度。任何人都可以请帮我解决这个问题吗?如何在键盘出现时降低弹出高度?
0
A
回答
0
只需添加两个此行viewDidLoad中()
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(self.keyboardWasShown), name: UIKeyboardDidShowNotification, object: nil)
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(self.keyboardWillBeHidden), name: UIKeyboardWillHideNotification, object: nil)
// keyboard delegates method implement
func keyboardWasShown(aNotification: NSNotification) {
print("Keyboard is active.")
// write your code that changes pop up frame.
}
func keyboardWillBeHidden(aNotification: NSNotification) {
print("Keyboard is hidden")
// write your code that changes pop up default frame.
}
+0
谢谢亲爱的。它工作正常,在我的情况下,我必须改变的唯一事情是通知名称keyboardwillShown。 –
+0
@Akashvishwakarma矿工的变化,我们必须在代码完成,我只是给你后,如果它的帮助,然后批准我的答案,并给予投票感谢你。 –
0
你试试这个代码添加通知添加通知
NotificationCenter.default.addObserver(self, selector: #selector(ClassName.keyboardWillShow), name: NSNotification.Name.UIKeyboardWillShow, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(ClassName.keyboardWillHide), name: NSNotification.Name.UIKeyboardWillHide, object: nil)
表自动当键盘出现管理
func keyboardWillShow(notification: NSNotification) {
if let keyboardSize = (notification.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.cgRectValue {
UIView.animate(withDuration: 0.5) {
var contentInsets:UIEdgeInsets
if (UIInterfaceOrientationIsPortrait(UIApplication.shared.statusBarOrientation)) {
contentInsets = UIEdgeInsetsMake(0.0, 0.0, (keyboardSize.height - (self.tabBarController?.tabBar.frame.size.height)!), 0.0);
} else {
contentInsets = UIEdgeInsetsMake(0.0, 0.0, (keyboardSize.width - (self.tabBarController?.tabBar.frame.size.width)!), 0.0);
}
self.tableView.contentInset = contentInsets
self.tableView.scrollIndicatorInsets = self.tableView.contentInset
}
}
}
func keyboardWillHide(notification: NSNotification) {
UIView.animate(withDuration: 0.5) {
let contentInset:UIEdgeInsets = UIEdgeInsets.zero
self.tableView.contentInset = contentInset
}
}
相关问题
- 1. 如何在键盘出现点击时管理UITextField的高度?
- 2. 如何在运行时弹出键盘
- 3. 键盘高度在出现时会有所不同
- 4. WPF。如果弹出窗口出现,主窗口亮度降低//代码隐藏
- 5. iPad上的UIModalPresentationFormSheet。如何在出现键盘时调整UITextView高度
- 6. 更改自定义键盘高度时出现跳跃问题
- 7. 如何当键盘出现
- 8. 触摸键盘何时弹出?
- 9. 如何降低Uipickerview的高度?
- 10. 如何自动弹出键盘?
- 11. 如何给弹出键盘焦点Gtk.Window
- 12. 如何防止软件键盘弹出?
- 13. 如何延迟iOS键盘弹出?
- 14. ipad - 键盘内弹出?
- 15. JavaFx TextArea不弹出键盘
- 16. 页面滚动时,软键盘弹出
- 17. 当UITextField弹出键盘时,UIView消失
- 18. 当键盘弹出时移动UIButton
- 19. 显示键盘时AlertDialog弹出
- 20. UITextField - 当按下时弹出键盘
- 21. Android - 弹出键盘时调整屏幕?
- 22. 如何在IB中构建TableView时降低其高度?
- 23. BottomNavigationBar在键盘出现时消失
- 24. 如何在键盘弹出时将视图拖动一点点?
- 25. 如何使键盘在swift中点击TextField时不弹出?
- 26. 如何在弹出软键盘时使聚焦的EditText可见?
- 27. 如何降低初始高度的linearLayout作为fill_parent的高度
- 28. 键盘辞职减少弹跳高度
- 29. Uity3D,隐藏键盘时inputfield有效(当现场被触摸无键盘弹出)
- 30. 其他键仍然按下时弹起键盘弹出
您可以在UITextField – ashmi123
的textfieldbegin方法上为弹出视图设置框架,当出现键盘时,应该向上移动弹出框。当键盘被解雇时,将弹出窗口重置为实际位置。 – Sommm