Không có cách nào (AFAIK) để lấy kích thước của chế độ xem bàn phím. Tuy nhiên, nó không đổi, ít nhất là trong mọi phiên bản iPhone cho đến nay.
Nếu bạn tính toán vị trí thanh công cụ như một độ lệch so với ĐÁY của chế độ xem và tính đến kích thước của chế độ xem, thì bạn sẽ không phải lo lắng liệu thanh điều hướng có hiện diện hay không.
Ví dụ
#define KEYBOARD_HEIGHT 240 // example - can't remember the exact size
#define TOOLBAR_HEIGHT 30
toolBarRect.origin.y = viewRect.size.height - KEYBOARD_HEIGHT - TOOLBAR_HEIGHT;
// move toolbar either directly or with an animation
Thay vì định nghĩa, bạn có thể dễ dàng tạo một keyboardHeight
hàm trả về kích thước dựa trên việc bàn phím có được hiển thị hay không và di chuyển vị trí thanh công cụ này thành một chức năng riêng biệt giúp sắp xếp lại bố cục của bạn.
Ngoài ra, nó có thể phụ thuộc vào nơi bạn thực hiện việc định vị này vì có thể kích thước chế độ xem của bạn có thể thay đổi giữa việc được tải và hiển thị dựa trên thiết lập thanh điều hướng của bạn. Tôi tin rằng nơi tốt nhất để làm điều đó là viewWillAppear.