samedi 27 décembre 2014

iOS. UITextView. Text jumping after UIKeyboardDidHideNotification

I have editable UITextView and keyboard dismiss mode is interactive. Also my controller is listening two notifications: UIKeyboardWillShowNotification, UIKeyboardWillHideNotification.



func keyboardWillShow(notification: NSNotification) {


if let userInfo = notification.userInfo {

var insets = self.textView.contentInset;
let rect = userInfo[UIKeyboardFrameEndUserInfoKey]?.CGRectValue() ?? CGRectZero
insets.bottom = (rect.size.height - (CGRectGetHeight(self.view.frame) - CGRectGetMaxY(self.textView.frame)))
self.textView.contentInset = insets
self.textView.scrollIndicatorInsets = insets
}
}


func keyboardWillHide(notification: NSNotification) {
self.textView.contentInset = UIEdgeInsetsZero
self.textView.scrollIndicatorInsets = UIEdgeInsetsZero
}


This stuff works great, if text in UITextView doesn't contain any empty lines. If it do, contentOffset jumps to another, random place.


I'm not sure if this is a bug in iOS 7+, or I am doing something wrong. If it's not a bug, how to get this going fluently without the jumping behaviour?


Thanks for your help.




Aucun commentaire:

Enregistrer un commentaire