Có sự khác biệt về cách thức kiểm soát nhấp chuột và nhấp chuột phải được xử lý bởi NSView (như jfewtr đã chỉ ra). Trình đơn ngữ cảnh sẽ xuất hiện cho một số nhấp chuột phải nếu nhấp chuột nằm trong chế độ xem phụ, nhưng không xuất hiện đối với một lần kiểm soát .
Tôi đã rất ngạc nhiên bởi điều này và thực sự đã viết một bài về nó với nhiều chi tiết ở đây: NSView control-click quirks
Có một vài giải pháp tiềm năng, nhưng trọng/tùy biến toàn bộ cây subview của bạn có lẽ không phải là lựa chọn tốt nhất. Tôi đã tìm thấy việc sửa chữa tốt nhất cho điều này là để hiển thị menu ngữ cảnh của bạn một cách rõ ràng trong bạn xem top-level (NSBox lớp con của bạn) cho một nhấp nút điều khiển:
- (void)mouseDown:(NSEvent *)theEvent
{
if (theEvent.modifierFlags & NSControlKeyMask)
{
[NSMenu popUpContextMenu:[self menuForEvent:theEvent] withEvent:theEvent forView:self];
}
}
Trong khi nó không phải là tuyệt vời để hardcode hành vi này, nó tránh thao tác hoặc di chuyển toàn bộ cây con của bạn, có thể gây ra nhiều tác dụng phụ/lỗi có vấn đề hơn.
Nguồn
2015-09-23 18:44:16
Tôi có cùng một thứ trong một bảng ... sẽ cho bạn biết những gì tôi tìm thấy. –