Tôi vừa nhận thấy rằng mã nhận dạng chiều cao bàn phím của tôi không hoạt động nữa với iOS11.nhanh chóng iOS11 - xác định bàn phímKích cỡ chiều cao không hoạt động nữa
Đối với thiết bị iOS10, tôi đã sử dụng logic này để phát hiện, nếu bàn phím sẽ ẩn trường nhập cụ thể (trong trường hợp của tôi là trường văn bản). Nếu đúng như vậy, bàn phím sẽ được hiển thị bên dưới trường văn bản hoạt động cuối cùng để cho phép người dùng nhập đúng cách.
Trong trường hợp iOS 11 việc xác định bàn phím chiều cao không hoạt động.
Helper lớp ví dụ cho bàn phím willAppear Logic Dưới đây chỉ là một ví dụ những gì keyBoardWillShow không -> Nó chỉ kiểm tra, nếu quan điểm cần phải được chuyển phía trên bàn phím, nếu bàn phím sẽ ẩn các textfield.
tôi đã làm một số debuggin và phát hiện ra rằng dòng mã bên dưới công trình khác nhau giữa iOS 10 và iOS 11:
if let keyboardSize = (notification.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.cgRectValue
iOS10 debugger đầu ra
keyboardSize CGRect (origin = (x = 0, y = 568), kích thước = (chiều rộng = 320, chiều cao = 216))
Đầu ra trình gỡ lỗi iOS11
keyboardSize CGRect (origin = (x = 0, y = 568), size = (width = 320, height = 0))
Dưới đây bạn có thể xem mã đầy đủ - nó làm việc cho đến khi iOS 10,3
func keyboardWillShow(notification: NSNotification, view: UIView, activeTextField: UITextField?, scrollView: UIScrollView?) {
if let keyboardSize = (notification.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.cgRectValue {
if view.frame.origin.y == 0{
var aRect : CGRect = (view.viewWithTag(2)?.frame)!
aRect.size.height -= keyboardSize.height
if let activeField = activeTextField {
let tempPoint = CGPoint(x: activeField.frame.origin.x, y: activeField.frame.origin.y + 20)
if (aRect.size.height < tempPoint.y){
view.frame.origin.y -= keyboardSize.height
if let scrollView = scrollView {
let bottomOffset = CGPoint(x: 0, y: scrollView.contentSize.height - scrollView.bounds.size.height)
scrollView.setContentOffset(bottomOffset, animated: true)
}
}
}
}
}
}
CẬP NHẬT 2017/09/20
tôi đã cố gắng nó bây giờ nhiều lần. Đôi khi nó cho thấy tôi cũng là một giá trị chiều cao bàn phím cho iOS11 - bây giờ tôi hoàn toàn bối rối .....