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, UITextViewvà UIKeyboardtrong một lớp singleton. Tôi gọi nó là IQKeyboardManager .
Bước 2: - Nếu tìm thấy UIKeyboardWillShowNotification, UITextFieldTextDidBeginEditingNotificationhoặc UITextViewTextDidBeginEditingNotificationthông báo, sau đó cố gắng để có được topMostViewControllerdụ từ UIWindow.rootViewControllerhệ thống cấp bậc. Để khám phá đúng UITextField/ UITextViewtrên đó, topMostViewController.viewkhung 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.framelên / xuống theo khoảng cách di chuyển dự kiến.
Bước 5: - Nếu tìm thấy UIKeyboardWillHideNotification, UITextFieldTextDidEndEditingNotificationhoặc UITextViewTextDidEndEditingNotificationthông báo, sau đó một lần nữa cố gắng để có được topMostViewControllerdụ từ UIWindow.rootViewControllerhệ thống cấp bậc.
Bước 6: - Khoảng cách bị xáo trộn được tính toán topMostViewController.viewcần được khôi phục về vị trí ban đầu.
Bước 7: - Khôi phục topMostViewController.view.frametheo 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/ UITextViewtrong ứ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ả