2009-06-18 46 views
11

Có cách nào để sửa đổi hoặc tạo bàn phím iPhone của riêng bạn để bạn có thể nhập các ngôn ngữ không được hỗ trợ không?Tùy chỉnh bàn phím iPhone

+2

Thực tế, điều này là có thể. Câu trả lời bạn chấp nhận là *** KHÔNG *** đúng. Hãy xem câu trả lời @Anomies, đó là cách bạn có thể triển khai bàn phím tùy chỉnh. – RyanR

+0

@RyanR: Câu trả lời được chấp nhận là đúng vào năm 2009; iOS 3.0 vừa được phát hành khi câu hỏi được hỏi và trả lời. Câu trả lời của tôi yêu cầu iOS 3.2. Tôi không chắc tại sao alok lại đăng một khoản tiền thưởng vào một câu hỏi cũ như vậy. – Anomie

Trả lời

13

Bạn có thể tạo bàn phím của riêng bạn, nhưng thực sự sử dụng nó khó khăn hơn.

Để tạo ra nó:

  1. Tạo nhìn bàn phím. Bạn có thể sử dụng bất kỳ phụ đề nào bạn muốn. Cách hữu ích nhất để làm điều này có lẽ là tạo một lớp con UIView.
  2. Sắp xếp cho một phiên bản bàn phím của bạn được trả lại bởi bất kỳ thuộc tính inputView của UIResponder. Đối với UITextView và UITextField, điều này đơn giản như gán thuộc tính; cho các lớp khác, bạn có thể sẽ phải phân lớp hoặc làm lộn xộn các accessors vì thuộc tính được khai báo chỉ đọc theo mặc định.

Thông tin chi tiết về điều này có sẵn trong the documentation.

Thật không may, thực sự sử dụng bàn phím tùy chỉnh này khó khăn hơn. Kể từ iOS 4.3, cả UITextField lẫn UITextView đều không phù hợp với UITextInput protocol, điều này lý tưởng cho mục đích này. Đối với UITextView, bạn có thể làm cho nó hoạt động bằng cách sử dụng các phương thức do lớp cung cấp, nhưng vì UITextField không cung cấp bất kỳ cách nào để tìm lựa chọn hiện tại hoặc vị trí con trỏ, bạn sẽ không thể tạo bàn phím đầy đủ chức năng sử dụng công khai phương pháp -ocumented (phụ thêm và xóa-từ-end là có thể, và thậm chí inserting at the current position by manipulating the clipboard, nhưng một "xóa nhân vật trước đó" nút như thế trên bàn phím tiêu chuẩn sẽ chứng minh không thể).

Kể từ iOS 5.0, UITextField và UITextView cuối cùng cũng thực hiện giao thức UITextInput. Bây giờ nó sẽ là một vấn đề đơn giản để chèn và xóa văn bản ở vị trí con trỏ.

6

Không, hiện tại không có cách nào để thực hiện việc này.

Có một số cách hacky để thêm nút của riêng bạn thông qua việc thêm SubViews. Nhưng nó không được hỗ trợ và có thể thất bại bất cứ lúc nào.

Nếu bạn quyết định tạo của riêng bạn, có thể bạn sẽ phải cuộn điều khiển hộp văn bản của chính mình và bất kỳ điều khiển nào khác cần bàn phím. Nói cách khác, không thực sự là một lựa chọn lý tưởng.

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