2012-09-13 29 views
5

Tôi tạo lập trình một NSWindow và các điều khiển trên đó theo lập trình.Ca cao: Nguồn gốc NSView x ở phía dưới cùng

Có vẻ như nguồn gốc (0,0) nằm ở góc dưới bên trái. Điều này thật lạ với tôi (đến từ các bộ công cụ GUI khác). Có một số lá cờ hay như vậy để tôi có thể thay đổi điều này để nguồn gốc ở góc trên cùng bên trái?

Trả lời

10

Trên OS X nguồn gốc ở góc dưới bên trái. Điều đó đúng với tọa độ màn hình và khung xem. Bạn có thể ghi đè lên isFlipped: trong lớp con NSView và trả về CÓ để tạo góc trên bên trái nguồn gốc của chế độ xem đó, nhưng tôi không nghĩ có cách nào để thực hiện tương tự cho tọa độ màn hình.

+3

Vâng, yea, đó là những gì tôi cũng đã nghiên cứu cho đến nay. Nhưng không phải là một cách dễ dàng hơn? Ngoài ra, tất cả những người muốn làm điều này luôn luôn phải tái tạo lại lớp 'NSFlippedView' mà chỉ là một' NSView' với 'isFlipped' trả về' YES'? – Albert

+0

Tôi nghĩ rằng trong hầu hết các trường hợp, giải pháp đơn giản nhất là để đảo ngược toán học của bạn. Thật khó chịu nếu bạn đến từ lập trình iOS, nhưng nó không phải là khó. – DrummerB

+0

Trong [Tài liệu ca cao] (http://developer.apple.com/library/mac/#documentation/cocoa/conceptual/CocoaDrawingGuide/Transforms/Transforms.html), nó nói: "Nếu bạn định vẽ tất cả nội dung của chế độ xem bằng cách sử dụng tọa độ được lật, ghi đè phương pháp isFlipped của chế độ xem là tùy chọn ưu tiên. " – Albert

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