2011-08-04 49 views
6

Cách tốt nhất để triển khai tính tương thích ngược, khi xây dựng ứng dụng cho Mac OS X 10.7 nhưng cũng tương thích với 10.6 là gì?Ứng dụng Mac OS X tương thích ngược 10.6 và 10.7 trong khi sử dụng NSPopovers

Tôi có một ứng dụng sử dụng NSPopover khi máy khách là 10.7 và NSMenu khi máy khách 10.6. Vấn đề là, khi bắt đầu ứng dụng trên máy 10.6, ứng dụng gặp sự cố ngoại lệ "không tìm thấy biểu tượng", nói rằng (loại) "_ OBJC $ _NSPopover không thể tìm thấy trong AppKit". Tôi có phải sử dụng id trong suốt ứng dụng cho các tính năng mới không?

Trả lời

2

Bạn có thể nhận các đối tượng lớp cho NSPopover bằng cách sử dụng chức năng NSClassFromString() này trả về một đối tượng Class với bạn có thể sử dụng để tạo ra các trường hợp ví dụ

id thePopover = [[NSClassFromString(@"NSPopover") alloc] init]; 

một khả năng khác là phải có hai tập tin nib riêng một cho 10.6 và một cho 10.7, ngòi không phải là giao diện hoàn chỉnh, chỉ là phần chứa NSPopover và sau đó tải tệp nib thích hợp vào lúc chạy.

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