【发布时间】:2014-10-30 20:02:51
【问题描述】:
我正在使用 Swift 进行 iOS 编程,我正在使用此代码移动 UITextField,但它不起作用。我正确调用了函数keyboardWillShow,但文本字段没有移动。我正在使用自动布局。
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);
}
deinit {
NSNotificationCenter.defaultCenter().removeObserver(self);
}
func keyboardWillShow(notification: NSNotification) {
if let keyboardSize = (notification.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.CGRectValue() {
//let contentInsets = UIEdgeInsets(top: 0, left: 0, bottom: keyboardSize.height, right: 0)
var frame = self.ChatField.frame
frame.origin.y = frame.origin.y - keyboardSize.height + 167
self.chatField.frame = frame
println("asdasd")
}
}
【问题讨论】:
-
带有项目文件的演练指南:codebeaulieu.com/43/…
-
也许 deinit 和 viewDidLoad 不平衡。
-
基于 Apple 的文档和个人经验。这是我使用 UIScrollView 移动 TF 的 git repo:github.com/29satnam/MoveTextFieldWhenKeyboardAppearsSwift
标签: ios swift cocoa-touch keyboard uitextfield