NSSlider
을 NSView
에 삽입합니다.
서브 클래스는 NSView와 캐치 마우스 이동 이벤트
@interface PBView : NSView {
id delegate;
}
@property (assign)id delegate;
@end
@implementation PBView
@synthesize delegate;
-(void) mouseMoved: (NSEvent *) thisEvent
{
NSPoint cursorPoint = [ thisEvent locationInWindow ];
[delegate sliderValueChanged];
}
- (void)createTrackingArea
{
NSTrackingAreaOptions focusTrackingAreaOptions = NSTrackingMouseMoved;
focusTrackingAreaOptions |= NSTrackingActiveInActiveApp;
focusTrackingAreaOptions |= NSTrackingMouseEnteredAndExited;
focusTrackingAreaOptions |= NSTrackingAssumeInside;
focusTrackingAreaOptions |= NSTrackingInVisibleRect;
NSTrackingArea *focusTrackingArea = [[NSTrackingArea alloc] initWithRect:NSZeroRect
options:focusTrackingAreaOptions owner:self userInfo:nil];
[self addTrackingArea:focusTrackingArea];
}
- (void)awakeFromNib
{
[self createTrackingArea];
}
@end
지금 여기
-(void)sliderValueChanged
{
NSPoint mouseLoc;
mouseLoc = [NSEvent mouseLocation]; // mouse location
NSRect r= [window frame];// window location
NSLog(@"%@", NSStringFromPoint(r.origin));
NSLog(@"%@", NSStringFromPoint(mouseLoc));
[silder setIntValue:(mouseLoc.x -r.origin.x)];//silder is object of NSSlider
}
프로젝트 HTTPS의 링크를 공유 구현 : //www.idrive합니다. co.kr/idrive/sh/sh? k = n9a5b8a8w7 –
환상적인 시험 정말 고마워. 나는 똑같은 일을했지만, 클릭하지 않고는 슬라이더를 움직일 수 없습니다. 귀하의 말을 이해하십시오. "NSSlider를 NSView에 포함"은 : 입니다. 1. 라이브러리 하단에서 오른쪽 하단의 슬라이더를 선택하고 창에 넣으십시오. 2. 편집기 -> 포함 -> 사용자 정의보기 이 맞습니까? 퍼가기 및 코딩 이외의 다른 작업이 있습니까? 글쎄, 내가 생각하는 문제는, PBView (슬라이더에 임베드 됨)가 (연결 관리자에서 판단하여) 아무 것도 연결되어 있지 않다는 것입니다. 어디서/어떻게 연결할 지 말해 줄 수 있습니까? – user2549858
PBView (NSView -> PBView)에 대한 사용자 정의보기 클래스 변경 –