AppDelegate内にメインウィンドウの「ウィンドウ」と「ヘルプウィンドウ」の2つのウィンドウがあります。メインウィンドウでは、そのビューがサブクラス化されており、その中に長方形を描画したいと思います。ヘルプウィンドウにも長方形がありますが、NSTrackerがあります。私がやりたいのは、x座標とy座標がNSTrackerの位置に等しいウィンドウサブクラスにrectを描画することです。私が抱えている問題は、座標を取り込もうとするとクラッシュすることです。私が間違っている可能性があることについて何か考えはありますか?ありがとう
//ウィンドウのサブクラスはCutoutViewと呼ばれます。これはすべて描画長方形です
AppDelegate *controller = [[[NSApp delegate] window] contentView];
xValue = controller.mouseLoc.x;
yValue = controller.mouseLoc.y;
NSRectFillUsingOperation(NSMakeRect(xValue,yValue, 600, 400), NSCompositeClear);
[self update];
- (void)update
{
NSLog(@"test");
[self setNeedsDisplay:YES];
}
//トラッカーhelpViewを使用したAppDelegateは、2番目のウィンドウ「ヘルプウィンドウ」のビューへの参照です
-(void)updateTrackingAreas
{
if(trackingArea != nil) {
[self.helpView removeTrackingArea:trackingArea];
[trackingArea release];
}
opts = (NSTrackingActiveAlways | NSTrackingMouseEnteredAndExited | NSTrackingMouseMoved);
trackingArea = [ [NSTrackingArea alloc] initWithRect:[self.helpView bounds]
options:opts
owner:self
userInfo:nil];
[self.helpView addTrackingArea:trackingArea];
}
-(void)mouseMoved:(NSEvent *)theEvent
{
mouseLoc = [NSEvent mouseLocation];
NSLog(@"mouseMoved: %f %f", mouseLoc.x, mouseLoc.y);
}
CutoutViewで、別のウィンドウ「helpWindow」にあるためにAppControllerが間違っていますか?またはそれは私のint値と関係がありますか?