Objective c 在NSView中移动rect

Objective c 在NSView中移动rect,objective-c,nsview,cgrect,Objective C,Nsview,Cgrect,我有一个NSView子类“graphics”,其中绘制了一些矩形 现在我需要一个公共方法来移动/调整矩形。我试图建立一个新的起源,但这对我来说不起作用 rect.origin.x = anything; 现在如何移动矩形 关于您正在使用名为“drawRect”的方法绘制矩形,每当NSView认为需要重新显示自身时,都会运行该方法 您的问题是,您在这个方法中设置了矩形的初始位置,所以您在其他方法中所做的每一次更改都无关紧要,并且每次都会被重置。相反,应该在init或awakeFromNib等只发

我有一个NSView子类“graphics”,其中绘制了一些矩形

现在我需要一个公共方法来移动/调整矩形。我试图建立一个新的起源,但这对我来说不起作用

rect.origin.x = anything;
现在如何移动矩形


关于

您正在使用名为“drawRect”的方法绘制矩形,每当NSView认为需要重新显示自身时,都会运行该方法

您的问题是,您在这个方法中设置了矩形的初始位置,所以您在其他方法中所做的每一次更改都无关紧要,并且每次都会被重置。相反,应该在init或awakeFromNib等只发生一次的方法中设置矩形的初始位置

按钮更改矩形原点的值后,可以使用以下命令通知视图重新绘制自身:

[self setNeedsDisplay:YES];

因此,在更改rect原点的代码之后添加此代码,您应该不会有问题。

该代码没有在NSView方面更改任何内容,您只是更改了rect,希望视图会注意到。不是这样的。嗨,首先谢谢你的回答。我已经在同一个NSView类中尝试过这样做,但它告诉我:“选择器‘setNeedsDisplay’没有已知的类方法,现在它是一个实例方法,但也不起作用。代码:-(void)move:(int)d{if(d==1){stab1.origin.x=5;[self setNeedsDisplay:YES];NSLog(@“test”);}该方法被调用,并且在日志中显示“test”,但“stab1”没有重新对齐?您可以发布更多的类代码吗?Move方法是如何调用的?是的,对不起,这是我制作的一个屏幕截图链接:是的,在这里:)