2013-08-07 3 views
2

보기와 연관된 두 개의 하위 뷰가 있습니다. 하나는 오른쪽 클릭을 처리하는 투명 뷰이고 다른 하나는 nsimageview 하위 뷰가있는 nsview입니다. 어떤 이유로 든 오른쪽 클릭은 nsimageview 내의 부분을 제외한 superview의 모든 부분에서 작동합니다. 투명 뷰는 다른 뷰의 맨 위에 있지만 마우스 오른쪽 아래 이벤트는 실행되지 않습니다.NSView 서브 뷰 오른쪽 클릭이 nsimageview를 통해 작동하지 않습니다.

+0

여기에 같은 답변이 필요합니다. – Mazyod

답변

3

마지막으로 이미지 뷰를 서브 클래 싱하고 히트 테스트 메서드를 재정 의하여 nil을 반환함으로써이를 해결했습니다. 전체 구현은 다음과 같습니다.

@implementation TTBaseImageView 

- (id)initWithFrame:(NSRect)frame 
{ 
    self = [super initWithFrame:frame]; 
    if (self) { 
     // Initialization code here. 
    } 

    return self; 
} 

- (void)drawRect:(NSRect)dirtyRect 
{ 
    // Drawing code here. 
    [super drawRect:dirtyRect]; 
} 

-(BOOL)isFlipped 
{ 
    return YES; 
} 

-(BOOL)acceptsFirstResponder 
{ 
    return NO; 
} 

-(BOOL)acceptsFirstMouse:(NSEvent *)theEvent 
{ 
    return NO; 
} 

-(NSView *)hitTest:(NSPoint)aPoint 
{ 
    return nil; 
} 
@end 
+0

젠장 ... 불필요한 해결 방법은 ... 애플 코코아 프레임 워크를 업데이트하십시오 – Mazyod

관련 문제