Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var activeField: UITextField? = nil
- func registerForKeyboardNotifications(){
- NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillShow), name: NSNotification.Name.UIKeyboardWillShow, object: nil)
- NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillHide), name: NSNotification.Name.UIKeyboardWillHide, object: nil)
- }
- func removeForKeyboardNotifications(){
- NotificationCenter.default.removeObserver(self, name: NSNotification.Name.UIKeyboardWillShow, object: nil)
- NotificationCenter.default.removeObserver(self, name: NSNotification.Name.UIKeyboardWillHide, object: nil)
- }
- @objc func keyboardWillShow(notification: Notification) {
- guard activeField != nil else {
- return
- }
- let userInfo = notification.userInfo
- let kbFrameSize = (userInfo![UIKeyboardFrameEndUserInfoKey] as! NSValue).cgRectValue.size
- let contentInsets = UIEdgeInsetsMake(0.0, 0.0, kbFrameSize.height, 0.0)
- scrollView.contentInset = contentInsets
- scrollView.scrollIndicatorInsets = contentInsets
- var aRect = self.view.frame
- aRect.size.height -= kbFrameSize.height
- if (!aRect.contains(activeField!.frame.origin)) {
- scrollView.scrollRectToVisible(activeField!.frame, animated: true)
- }
- }
- @objc func keyboardWillHide(notification: Notification) {
- let contentInsets = UIEdgeInsetsMake(0.0, 0.0, 0.0, 0.0)
- scrollView.contentInset = contentInsets
- scrollView.scrollIndicatorInsets = contentInsets
- }
- func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
- activeField = textField;
- return true
- }
- func textFieldShouldEndEditing(_ textField: UITextField) -> Bool {
- activeField = nil;
- return true
- }
Add Comment
Please, Sign In to add comment