이렇게하려면 여러 가지 방법이 있지만 항상 키보드 관련 알림을 수신해야합니다. 그들은 obj-c와 같은 방식으로 작동합니다. 다음의 간단한 예에서는 키보드가 나타나면 텍스트 필드를 위로 이동하고 해지 될 때 텍스트 필드를 다시 아래로 이동하는 방법을 보여줍니다. 다음 예제는 UIViewController 구현입니다.
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(sender: NSNotification) {
let s:NSValue = sender.userInfo.valueForKey(UIKeyboardFrameEndUserInfoKey) as NSValue;
let rect :CGRect = s.CGRectValue();
var frame = self.textField.frame;
frame.origin.y = frame.origin.y - rect.height;
self.textField.frame = frame;
}
func keyboardWillHide(sender: NSNotification) {
let s:NSValue = sender.userInfo.valueForKey(UIKeyboardFrameBeginUserInfoKey) as NSValue;
let rect :CGRect = s.CGRectValue();
var frame = self.textField.frame;
frame.origin.y = frame.origin.y + rect.height;
self.textField.frame = frame;
}