2014-09-15 2 views
2

У меня есть UITableView, где я хочу показать клавиатуру. Это скрывает мою последнюю строку, и поэтому я хотел бы получить раму клавиатуры, а затем вычислить размер ячейки.Программно получить клавиатуру в Swift

Как я могу получить фрейм клавиатуры программно в Swift?

ответ

12

Просто слушать UIKeyboardWillShowNotification в вашем UIViewController:

// in your viewDidLoad: 

NSNotificationCenter.defaultCenter().addObserver(self, selector: "keyboardWillShow:", name: UIKeyboardWillShowNotification) 

// later in your class: 

func keyboardWillShow(notification: NSNotification) { 
    let frame = (notification.userInfo![UIKeyboardFrameEndUserInfoKey] as! NSValue).CGRectValue() 
    // do stuff with the frame... 
} 
+2

вы должны удалить наблюдателя после отклонения контроллера вида. –

8

В Swift 2.0, используйте следующее добавление наблюдателя в viewDidLoad()

NSNotificationCenter.defaultCenter().addObserver(self, 
    selector: "keyboardWillShow:", 
    name: UIKeyboardWillShowNotification, 
    object: nil 
) 

Второй метод все еще работает в Swift 2.0

Смежные вопросы