2010-01-05 24 views
9

Xin chào, tôi khá mới mẻ với Cocoa và XCode, vì vậy tôi xin lỗi nếu đây là một câu hỏi ngớ ngẩn.OSX Cocoa: Cách kiểm tra cửa sổ nào đang được lấy nét?

Làm cách nào để kiểm tra xem cửa sổ nào đang được lấy nét?

Ngoài ra, làm cách nào để kiểm tra xem một cửa sổ nhất định có được lấy nét hay không, nếu điều này không giống như giải pháp trước đó.

Cảm ơn sự giúp đỡ.

Trả lời

3

Bạn đang tìm 'keyWindow'. Đó là tài sản của cả NSWindow và NSApplication. Đó là một bool trong cựu và một trường hợp NSWindow trong sau này.

17

Thật ra có hai hình thức “tập trung”:

  • Cửa sổ có sự xuất hiện hoạt động (màu/tối stoplight xám, chữ đen trong thanh tiêu đề, biểu tượng undimmed proxy, vv) là chính cửa sổ.
  • Cửa sổ nhận các sự kiện chính là cửa sổ chính.

Xem xét cửa sổ tài liệu với bảng điều khiển Thanh tra. Nếu người dùng đang chỉnh sửa một số văn bản trong một trường trong Thanh tra, thì cửa sổ tài liệu có thể là chính, nhưng bảng Thanh tra là khóa.

Để nhận the key window hoặc the main window, hãy yêu cầu phiên bản được chia sẻ NSApplication. Và, như TechZen đã lưu ý, bạn có thể yêu cầu một cửa sổ cả hai whether it is keywhether it is main.

+0

Cảm ơn sự giúp đỡ, tôi hiểu ý tưởng của những gì tôi nên làm nhưng tôi đang gặp khó khăn khi đưa nó vào thực tế. Làm thế nào chính xác để tôi hỏi về bản sao NSApplication được chia sẻ? Tôi đã làm việc thông qua một số hướng dẫn nhưng tôi vẫn còn khá mới đối với loại lập trình này. Vì vậy, tôi xin lỗi nếu tôi hỏi những gì có vẻ là một câu hỏi ngu ngốc. Nếu bạn có thể cung cấp cho tôi một mẫu mã sẽ là một trợ giúp tuyệt vời. Cảm ơn bạn lần nữa. – jbx

+1

Theo các liên kết tôi đã cung cấp. –

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