Monday, November 13, 2017

Để bàn phím không che TextField

Khi thiết kế giao diện, nếu TextField của bạn ở vị trí quá thấp thì khi người dùng ấn vào bàn phím hiện ra sẽ che mất TextField.
Để làm cho TextField tự cuộn lên được ta để giao diện trong một ScrollView Sc, sau dó thêm các hàm sau vào trên ngoặc đóng cuối cùng.
func keyboardShow(n:NSNotification) {
       
        let d = n.userInfo!
        var r = (d[UIKeyboardFrameEndUserInfoKey] as! NSValue).CGRectValue()
        r = self.sc.convertRect(r, fromView:nil)
        self.sc.contentInset.bottom = r.size.height+50
        self.sc.scrollIndicatorInsets.bottom = r.size.height
    }
   
    func keyboardHide(sender: NSNotification!)
    {
        sc.setContentOffset(CGPointMake(0, 0), animated: false)
    }
Sau đó bên dưới dòng super.viewDidLoad() thêm các dòng sau.
NSNotificationCenter.defaultCenter().addObserver(
            self, selector: #selector(keyboardShow),
            name: UIKeyboardWillShowNotification, object: nil)
        NSNotificationCenter.defaultCenter().addObserver(
            self, selector: #selector(ViewController.keyboardHide(_:)),
            name: UIKeyboardWillHideNotification, object: nil)

Bây giờ khi bạn chạm vào TextField nó sẽ tự cuộn lên không bị che nữa.

No comments:

Post a Comment