我有两个窗口,我的主窗口“窗口”和“帮助窗口”都在我的 App Delegate 中。在我的主窗口中,它的视图是子类的,我想在其中绘制一个矩形。我的帮助窗口也有一个矩形,但上面有一个 NSTracker。我想要做的是在我的窗口子类中绘制我的矩形,x 和 y 坐标等于我的 NSTracker 位置。我遇到的问题是当我尝试输入坐标时它崩溃了,有什么想法我可能做错了吗?谢谢
//我的窗口子类叫做CutoutView。这一切都在draw rect中
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];
}
//我的AppDelegate和tracker helpView是对我的第二个窗口“Help Window”视图的引用
-(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 中,我是否因为 AppController 在不同的窗口“helpWindow”中而弄错了?还是与我的 int 值有关?