首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mouseDragged:关于CGRect

mouseDragged:关于CGRect
EN

Stack Overflow用户
提问于 2013-08-04 15:41:23
回答 1查看 82关注 0票数 0

我正在尝试拖动一个CGRect,但是什么都没有发生。直肠在同一个地方。以下是我的mouseDragged:代码:

代码语言:javascript
复制
-(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绘制了rect myRect

这是我的drawRect:

代码语言:javascript
复制
- (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");

}

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-04 21:03:09

您总是将myRect设置为drawRect:内的常量值。您想要的似乎是在myRect中完全不设置drawRect:,并使用其当前值绘制它。所以就像这样:

代码语言:javascript
复制
- (void)drawRect:(NSRect)rect
{
    CGContextRef myContext = [[NSGraphicsContext currentContext] graphicsPort];
    CGContextSetRGBFillColor(myContext, 1, 0, 0, 1);
    CGContextFillRect(myContext, myRect);

    NSLog(@"drawRect: called");
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18044646

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档