IQKeyboardManager làm điều này cho bạn mà KHÔNG CÓ DÒNG MÃ , chỉ cần kéo và thả tệp nguồn liên quan đến dự án. IQKeyboardManager cũng hỗ trợ Định hướng thiết bị , Quản lý UIToolbar Tự động , keyboardDistanceFromTextField và hơn thế nữa bạn nghĩ.
Đây là Sơ đồ luồng kiểm soát:
Bước 1: - Thêm thông báo toàn cầu về UITextField
, UITextView
và UIKeyboard
trong một lớp singleton. Tôi gọi nó là IQKeyboardManager .
Bước 2: - Nếu tìm thấy UIKeyboardWillShowNotification
, UITextFieldTextDidBeginEditingNotification
hoặc UITextViewTextDidBeginEditingNotification
thông báo, sau đó cố gắng để có được topMostViewController
dụ từ UIWindow.rootViewController
hệ thống cấp bậc. Để khám phá đúng UITextField
/ UITextView
trên đó, topMostViewController.view
khung của cần được điều chỉnh.
Bước 3: - Tính toán khoảng cách di chuyển dự kiến topMostViewController.view
đối với phản hồi đầu tiên UITextField
/ UITextView
.
Bước 4: - Di chuyển topMostViewController.view.frame
lên / xuống theo khoảng cách di chuyển dự kiến.
Bước 5: - Nếu tìm thấy UIKeyboardWillHideNotification
, UITextFieldTextDidEndEditingNotification
hoặc UITextViewTextDidEndEditingNotification
thông báo, sau đó một lần nữa cố gắng để có được topMostViewController
dụ từ UIWindow.rootViewController
hệ thống cấp bậc.
Bước 6: - Khoảng cách bị xáo trộn được tính toán topMostViewController.view
cần được khôi phục về vị trí ban đầu.
Bước 7: - Khôi phục topMostViewController.view.frame
theo khoảng cách bị xáo trộn.
Bước 8 : - Phiên bản lớp IQKeyboardManager singleton được khởi tạo ngay khi tải ứng dụng, vì vậy mọi UITextField
/ UITextView
trong ứng dụng sẽ tự động điều chỉnh theo khoảng cách di chuyển dự kiến.
Đó là tất cả