관리를 완전히 사용자 정의 NSControl
는 완전히 사용자 정의 NSCell
와. 이제 마우스 상호 작용을 구현하고 싶습니다. 예를 들어 사용자가 컨트롤을 클릭했을 때 컨트롤 상태를 highlight
으로 변경하려고합니다. 질문은 다음과 같습니다.NSControl 및 NSCell에 : 나는이 셀 상태 올바른 방법
1) 마우스 이벤트를 처리해야하는 곳은 무엇입니까? NSControl
또는 직접 NSCell
에 있습니까? 나는 NSCell에 서브 클래스에서이 코드로 일하고 있어요 순간
:
-(BOOL)startTrackingAt:(NSPoint)startPoint inView:(NSView *)controlView{
[self setHighlighted:YES];
return YES;
}
-(void)stopTracking:(NSPoint)lastPoint at:(NSPoint)stopPoint inView:(NSView *)controlView mouseIsUp:(BOOL)flag{
[self setHighlighted:NO];
}
2)는 NSCell
상태가 자동으로 NSControl
에 의해 관리인가? NSControl
스테테를 highlight
으로 설정하면 NSCell
으로 미러링됩니까?
3) 무엇이 활성화 된 속성입니까? 나는 NSControl에이 코드를 쓴 순간 다음 NSControl
-(void)setEnabled:(BOOL)flag{
[super setEnabled:flag];
[[self cell]setEnabled:flag];
[self updateCell:[self cell]];
}
에서 그리고이 코드는 사용자 지정 NSControl + NSCell에와 마우스 이벤트와 함께 작업 할 특정 제안이있으세요?
왜 추적 영역을 수정해야합니까? – MatterGoal
전혀 수정할 필요가 없습니다. NSControl 서브 클래스는 마우스가 들어갔을 때 나 종료 할 때 자체적으로 감지하기 때문에 깨끗한 접근 방식을 취합니다. –
NSButton 비헤이비어를 시뮬레이트해야 마우스가 내 컨트롤을 입력/종료 할 때를 알 필요가 없습니다. 사용자 정의 컨트롤에서 마우스 이벤트를 관리하는 올바른 방법이 무엇인지 알아야합니다. 현재 NSCell 수준에서 관리하려고합니다. 이것이 좋은 생각이 아니라고 생각합니까? – MatterGoal