2010-08-22 36 views
15

Tôi có một số tùy chỉnh UIMenuItems làm việc với lựa chọn trong một UIWebView. Sau khi hành động đã được chạy trên lựa chọn đó, tôi muốn ẩn các lựa chọn xử lý giống như copy:.Ẩn xử lý lựa chọn văn bản sau khi thao tác trong UIWebView

Tôi đã thử sử dụng window.getSelection().removeAllRanges(); và hoạt động trong đó window.getSelection() không còn trả về bất kỳ điều gì nhưng xử lý lựa chọn văn bản vẫn hiển thị.

Có cách nào để xóa lựa chọn và xử lý với nó không?

Chỉnh sửa: Tôi không cần nó là giải pháp JS nhưng tôi không thể giải phóng trạng thái bằng cách tải lại chế độ xem web.

+0

Matt - trên điện thoại của tôi (và trình mô phỏng), sao chép: không ẩn lựa chọn xử lý khi được chọn. Liệu nó trên của bạn? Xin vui lòng gửi giải pháp của bạn nếu bạn đã tìm thấy một - Tôi đang làm việc trên này quá. – TomSwift

+0

Tom - hmmm, bạn nói đúng ... Có lẽ đây là điều không thể. Những gì tôi đang làm là nhận được sự lựa chọn và xung quanh nó với một div mới. Những gì tôi không thích là việc lựa chọn màu xanh xử lý sau đó hiển thị ở vị trí cũ của văn bản được lựa chọn như một tôi với hai chấm màu xanh. Vấn đề liên quan là nếu tôi lập trình thay đổi lựa chọn, tôi không tin rằng hộp chọn văn bản màu xanh sẽ điều chỉnh theo phạm vi mới đó. –

+0

Đó là hành vi tương tự mà tôi đã trải qua. Có vẻ như không có cách nào để thay đổi phạm vi lựa chọn từ javascript. – TomSwift

Trả lời

41

Chỉ cần vô hiệu hóa và kích hoạt lại các tương tác người dùng:

myWebView.userInteractionEnabled = NO; 
myWebView.userInteractionEnabled = YES; 
+0

Đó đơn giản là thiên tài. – TomSwift

+0

Rực rỡ! Bạn kiếm được nó! Bạn biết bạn có giải pháp đúng khi nó rất đơn giản ... :) –

+0

Cảm ơn. Tôi yêu các giải pháp đơn giản cho các vấn đề khó khăn rõ ràng :) – Sylter

-1

bạn chỉ có thể làm mới webview nếu dữ liệu của bạn chỉ là văn bản thì không có cơ thể có thể theo dõi webview đó là làm mới

sử dụng mã này

[webview reload]; 

tôi đã làm điều này trong các ứng dụng của tôi & công việc của mình lớn

+1

Tôi không thể tải lại toàn bộ webview vì điều đó sẽ thay đổi trạng thái trong chế độ xem web. Tôi chỉ cần lấy những tay cầm đó biến mất. ;) –

+0

Chắc chắn là một công việc xung quanh, nhưng không lý tưởng cho hầu hết các tình huống. –

-2

[_webview becomeFirstResponder]; Sau hành động của bạn.

Bạn chỉ cần điều này. Tôi luôn luôn sử dụng cách này.

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