我在我的視圖控制器中顯示一個彈出窗口,彈出窗口包含一個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. 如果鍵盤存在,UIPopovercontroller的高度會降低。
- 3. 如何在運行時彈出鍵盤
- 4. 如何降低div高度
- 5. iPhone - 如何降低高度
- 6. 鍵盤高度在出現時會有所不同
- 7. WPF。如果彈出窗口出現,主窗口亮度降低//代碼隱藏
- 8. 彈出式鍵盤在iPad上出現鍵盤時左上角收縮
- 9. 瀏覽框的高度降低,黑條出現
- 10. 彈出文本框時彈出鍵盤彈出
- 11. 如何在ListActivity(Android)中降低高度?
- 12. iPad上的UIModalPresentationFormSheet。如何在出現鍵盤時調整UITextView高度
- 13. 更改自定義鍵盤高度時出現跳躍問題
- 14. iPhone彈出鍵盤
- 15. 如何當鍵盤出現
- 16. 觸摸鍵盤何時彈出?
- 17. Android的 - 如何調整彈出時,軟鍵盤顯示出來
- 18. 如何降低酒吧高度 - Chart.js
- 19. 如何降低tabcontrol中scrollviewer的高度?
- 20. 如何降低UISlider框架高度?
- 21. 如何降低Uipickerview的高度?
- 22. 如何防止軟件鍵盤彈出?
- 23. 如何強制安卓鍵盤彈出?
- 24. 如何自動彈出鍵盤?
- 25. 如何彈出「?123」Android鍵盤
- 26. 如何給彈出鍵盤焦點Gtk.Window
- 27. 如何延遲iOS鍵盤彈出?
- 28. 如何防止鍵盤出現在phonegap?
- 29. 當虛擬鍵盤出現彈出在iPad中向上移動?
- 30. 查看高度降低
您可以在UITextField – ashmi123
的textfieldbegin方法上爲彈出視圖設置框架,當出現鍵盤時,應該向上移動彈出框。當鍵盤被解僱時,將彈出窗口重置爲實際位置。 – Sommm