2012-09-11 41 views
5

Tôi có thanh điều hướng được cố định ở đầu cửa sổ khi cuộn. Tuy nhiên, khi tôi nhấp vào một đầu vào và bàn phím bật lên thì vị trí cố định sẽ di chuyển và bị kẹt ở vị trí sai. Có cách nào để sửa lỗi này không?Bàn phím trên ios di chuyển tiêu đề vị trí cố định của tôi nav

Ngoài ra, tôi dường như không thể đóng bàn phím bằng cách nhấp vào bên ngoài bàn phím.

+0

là thanh điều hướng được đặt trong trình tạo giao diện hoặc chế độ xem tùy chỉnh? không có cách nào nó có thể di chuyển nếu đó là thanh điều hướng mặc định – jere

+0

Bạn phải có mã chạy khi bàn phím được hiển thị. Vui lòng đăng bài đó nếu bạn muốn chúng tôi trợ giúp. Ngoài ra, hãy đăng bất kỳ mã nào được chạy khi bàn phím bị ẩn. Và cuối cùng, bàn phím không được đóng lại khi bạn chạm vào bên ngoài. – lnafziger

+0

http://stackoverflow.com/questions/7970389/ios-5-fixed-positioning-and-virtual-keyboard và http://stackoverflow.com/questions/12550298/mobile-safari -ios-6-0-fixed-oriented-while-keyboard-hiển thị có thể hữu ích – sjobe

Trả lời

0

Tôi không chắc chắn tại sao thanh điều hướng của bạn sẽ di chuyển. Nếu bạn đang phân lớp hoặc sử dụng UINavigationControlller thì thanh điều hướng sẽ được cung cấp theo mặc định nhưng bạn luôn có thể ẩn nó. Nếu bạn không và chỉ muốn một UINavgivationBar và không phải là ngăn xếp của bộ điều khiển xem mà bạn nhận được với bộ điều khiển hơn là có thể di chuyển khung. Tôi đề nghị sử dụng một bộ điều khiển nav thay vì để đảm bảo thanh của bạn sẽ không bao giờ di chuyển.

Để giải quyết bàn phím không ẩn khi bạn nhấp vào. Không có cách "tự động" để thực hiện việc này, bạn phải gọi phương thức resignFirstResponder một cách rõ ràng trên tham chiếu đã lưu vào trường văn bản mà bạn đã nhấp để làm cho bàn phím xuất hiện. Cách tốt nhất để làm điều này là tạo một thuộc tính NSMutableArray và thực hiện UITextfieldDelegate trong trình điều khiển khung nhìn của bạn .h và đặt phương thức - (void) textfiedDidBeginEditing: (UITextfield *) textfield Tôi là .m và thêm textfied vào mảng có thể thay đổi bên trong đó. Từ đó bạn cần quyết định cách người dùng sẽ loại bỏ bàn phím IE đã nhấp vào nền. Vì vậy, cách dễ nhất là thêm một UIButton khổng lồ không có văn bản vào nền gọi một phương thức lặp qua mutablearray đó và gọi resignFirstResponder trên mọi thứ và xóa mảng khi hoàn thành.

hoặc bạn luôn có thể thay đổi loại bàn phím của trường văn bản thành một nút có nút đã hoàn tất.

Lựa chọn là của bạn!

Các vấn đề liên quan