2008-11-21 5 views

Trả lời

4

Bạn nói đúng, điều này rõ ràng là một API được xuất bản và nó sẽ được đánh dấu trong tài liệu. Không may mắn như vậy.

  • Nếu bạn đang sử dụng một trong các điều khiển gốc nền tảng, bàn phím ảo sẽ tự động bật lên khi người dùng truy cập điều khiển chỉnh sửa văn bản.

  • Nếu bạn đang thực hiện điều khiển tùy chỉnh, bạn cần phải giải quyết lựa chọn bằng cách thêm phiên bản bàn phím ảo của riêng bạn: thực hiện điều chỉnh tùy chỉnh trông giống như bàn phím ảo nút. Sử dụng lại nó trên tất cả các ứng dụng của bạn. Một ngày nọ, Nokia sẽ nhận ra rằng họ đã mắc phải một sai lầm rõ ràng và làm cho API có sẵn công khai.

  • Nếu bạn đang sử dụng truy cập màn hình trực tiếp, tốt, bạn sẽ không thực sự mong đợi bàn phím ảo rất s60-tìm kiếm bật lên từ bây giờ. Một lần nữa, vẽ một hình ảnh đẹp trên màn hình để cho người dùng biết vị trí các phím ảo và phản ứng với các sự kiện con trỏ. Điều này sẽ ít có thể tái sử dụng được trừ khi bạn xây dựng một số lượng tùy chỉnh tốt (nền, cạnh nút ...) vào đó.

EDIT: Nokia có thể dựa vào Qt để khắc phục vấn đề này. Tôi mong đợi sự kiểm soát là một phần của phiên bản 4.7 hiện tại của Qt.

3

Nhằm tập trung vào QLineEdit bên trong khu vực cuộn động được mã hóa tùy chỉnh, tôi đã gặp phải sự cố tương tự (cách mở bàn phím ảo theo cách thủ công). Sau đó, tôi tìm thấy nó, điều này rõ ràng làm việc trong Qt 4.6.3 trên C7 Symbian^3 điện thoại:

// lineEdit is an instance of QLineEdit  
QApplication::postEvent(lineEdit, new QEvent(QEvent::RequestSoftwareInputPanel)); 

Trước đó, tôi cũng đã phải gửi một QEvent :: kiện FocusIn để cùng lineedit, nếu không QLineEdit không cập nhật nội dung từ bàn phím ảo.

Hy vọng điều này hữu ích. Tôi bị mất giờ.

1

Cảm ơn bạn, mẹo rất hữu ích! Ngoài ra còn có sự kiện "bàn phím ảo gần" có thể được kích hoạt:

QApplication::postEvent(lineEdit, new QEvent(QEvent::CloseSoftwareInputPanel));