2011-08-16 26 views
8

Có cách nào để kiểm tra xem NSWindow có hiển thị hay không? Tôi muốn hiển thị bộ điều khiển trang tính khi cửa sổ đầu tiên của ứng dụng của tôi hiển thị (hoạt ảnh trên 10.7 đã kết thúc và người dùng có thể thấy cửa sổ!). Nếu tôi chỉ hiển thị các tờ trong windowDidLoad, nó kết quả trong một hình ảnh động tìm kiếm ngu ngốc (tấm lăn ra, cửa sổ bật ra từ phía sau). Tôi biết rằng NSWindowDelegate cung cấp hai phương thức được gọi khi cửa sổ trở thành cửa sổ chính hoặc cửa sổ chính, tuy nhiên, điều này không có nghĩa là cửa sổ đã được hiển thị đầy đủ vào thời điểm đó. Điều này thậm chí còn đáng chú ý hơn trên Lion nơi cửa sổ có xu hướng bật lên với hình ảnh động ngu ngốc này.Làm thế nào để kiểm tra xem một NSWindow có thể nhìn thấy

+0

tôi nghĩ rằng tôi đã đọc về một số thông báo khi cửa sổ hiệu ứng động hoàn thành trên màn hình, nhưng bây giờ tôi không thể tìm thấy nó ... – jtbandes

Trả lời

24

tôi sẽ đi cho một cái gì đó như thế này:

if ([myWindow isVisible]) { 
    // Do stuff 
} 

Hoặc một quan sát viên cho con đường quan trọng này để được thông báo khi có sự thay đổi xảy ra.

+0

Tôi đoán thời gian cho tôi ngủ một chút, tôi đã tìm kiếm tài liệu của NSWindow trong 30 phút để tìm một chức năng như vậy và chắc chắn 100% rằng không tồn tại. Cảm ơn rất nhiều! – JustSid

+3

@JustSid - Tôi biết cảm giác, khi gặp phải vấn đề hiếm khi giúp đỡ. Một break và tươi nhìn vào ngày hôm sau thường làm :). – PeyloW

1

Đối với những gì đáng giá, bạn cũng có thể liên kết với thuộc tính window.visible. Xcode 4 có thể quằn quại với bạn, nói rằng nó không phải là một thuộc tính có thể kết buộc, nhưng nó sẽ hoạt động.

Điều này có thể hữu ích nếu bạn đang thử bật/tắt hiển thị/ẩn NSStatusItem dựa trên việc cửa sổ có hiển thị hay không, cũng như các cách tiếp cận khác.

tức là trong giao diện Builder:

  • Bind to: App Đại biểu
  • Mẫu Đường dẫn chính: self.window.visible
Các vấn đề liên quan