我的一个视图的底部有一个文本视图,如果我没有做任何事情,当它弹出时它会被键盘隐藏起来。我所做的是当键盘即将出现时,文本视图向上移动160点。问题在于,由于尺寸不同,它不会放在每个iPhone的完全相同的位置。我想知道文本视图是否有可能在键盘上方20点,而不是从它的原点向上推160点。
override func viewDidLoad() {
super.viewDidLoad()
NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("keyboardWillShow:"), name:UIKeyboardWillShowNotification, object: nil);
NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("keyboardWillHide:"), name:UIKeyboardWillHideNotification, object: nil);
}
var isShown: Bool = false
var willHide: Bool = false
func keyboardWillShow(sender: NSNotification) {
isShown = true
}
func keyboardWillHide(sender: NSNotification) {
willHide = true
}
func textViewDidBeginEditing(textView: UITextView) {
if isShown == true {
self.view.frame.origin.y -= 160
}
}
func textViewDidEndEditing(textView: UITextView) {
if willHide == true {
self.view.frame.origin.y += 160
}
}
答案 0 :(得分:1)
您可以从通知对象中获取键盘的大小。
像这样的东西
NSDictionary* info = [sender userInfo];
CGSize kbSize = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;
您可以在Apple Docs
中详细了解此信息