【发布时间】:2013-08-04 15:41:23
【问题描述】:
我正在尝试拖动CGRect,但没有任何反应。矩形保持在同一个地方。这是我的mouseDragged: 代码:
-(void)mouseDragged:(NSEvent *)theEvent{
NSPoint eventLocation = [theEvent locationInWindow];
NSPoint location = [self convertPoint:eventLocation fromView:self];
int locationX = location.x;
int locationY = location.y;
[self setNeedsDisplay:TRUE];
if(CGRectContainsPoint(myRect, location)){
myRect.origin.x = locationX;
myRect.origin.y = locationY;
}
}
此代码位于NSView 内。我在drawRect中画了矩形myRect:
这是我的drawRect:
- (void)drawRect:(NSRect)rect
{
int width = self.bounds.size.width;
int height = self.bounds.size.height;
myRect = CGRectMake((width/2)-50, (height /2)-50, 100, 100);
CGContextRef myContext = [[NSGraphicsContext currentContext] graphicsPort];
CGContextSetRGBFillColor(myContext, 1, 0, 0, 1);
CGContextFillRect(myContext, myRect);
NSLog(@"drawRect: called");
}
有什么想法吗?
【问题讨论】:
-
你能展示你的
drawRect:方法吗? -
我添加了 drawRect: 方法
标签: cocoa core-graphics quartz-core