2010-05-18 26 views
5

webview in core animation layerLayering Cocoa WebView - Vẽ trên đầu trang?

Chỉ có chủ đề khác tôi có thể tìm thấy ở trên không nhất thiết phải phù hợp với nhu cầu của tôi. Có cách nào đáng tin cậy để chỉ vẽ một chế độ xem trên đầu trang webview không? Tôi đã cố gắng để lớp một NSView thường xuyên trên đầu trang của WebView, và nó rút ra ngay lúc đầu, nhưng bất kỳ chuyển động trong webview (di chuyển trang vv) dường như làm mất hiệu lực quan điểm và tạo ra hiện vật trực quan.

Tôi đã thử:

[[[NSApp mainWindow] contentView] addSubview:view positioned:NSWindowAbove relativeTo:webView]; 

Không may mắn đó, cùng một vấn đề - z-trật tự dường như không làm việc trừ khi tôi đang thiếu một cái gì đó.

Đây có phải chỉ là giới hạn của các lần xem trang web không?

Tôi cũng đã thử triển khai chế độ xem ở trên làm cửa sổ, hoạt động tốt hơn nhiều (chỉ kiểm soát vị trí của cửa sổ theo chương trình). Tuy nhiên, hành vi mong muốn là để người dùng nhập một số văn bản vào cửa sổ này, nhưng để không đánh cắp "tiêu điểm" - tức là cửa sổ chính không hoạt động (x - + chuyển sang màu xám) khi người dùng nhấp vào trường văn bản trong cửa sổ mới. Có cách nào để tránh điều đó không?

Tôi đã thử phân lớp NSWindow và ghi đè canBecomeKey (trả về CÓ) và canBecomeMain (trả về NO) nhưng cửa sổ vẫn lấy cắp tiêu điểm.

EDIT: Tôi khóc :-(Tôi không thể tìm ra cách vẽ xung quanh bản vẽ trên webkit. Mặt khác, tôi tìm ra cách để buộc cửa sổ chính của ứng dụng giữ trạng thái hoạt động Mặc dù bạn có một cửa sổ bật lên với trạng thái khóa, tuy nhiên, nó có những hậu quả không mong muốn khi sử dụng kiểu nhập văn bản trên hộp thoại bật lên (mà phải bị ép vào trạng thái cửa sổ chính). và các sự kiện chuột không nhận được phân phối cho các quan điểm webkit bên dưới (đối với di chuột vào các thành phần nhúng trong html). Craptacular.

Josh

+0

Bạn đã thử thêm chế độ xem làm chế độ xem phụ của chế độ xem web chưa? –

+0

Không điều đó không hoạt động hoặc là – strange

Trả lời

2

Một hơi muộn, nhưng tôi đập đầu tôi vào cùng một vấn đề và hai năm sau q uestion Tôi vẫn không thể tìm thấy câu trả lời. Trong trường hợp của tôi, thiết lập wantsLayer = YES trên khung nhìn mà tôi muốn vẽ qua WebView đã giải quyết được vấn đề.

+0

Điều này cũng phù hợp với tôi! – starkos

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