2014-10-16 84 views
0

我有一些地方是rects绘制的子类的NSView“图形”。移动RECT中的NSView

现在我想的公共方法移动/调整rects。我试图设置一个新的起源,但这对我不起作用。

rect.origin.x = anything; 

现在我该如何移动rects?

问候

+0

代码,否则不能在一个NSView侧改变任何东西,你只是改变RECT和希望的看法会注意到。它不这样工作。 – CodaFi 2014-10-16 21:08:10

回答

1

您绘制在一个名为“drawRect中”的方法,它是运行在每次的NSView认为它应该需要重新显示自身时间的矩形。

您的问题是你设置在这种方法中,矩形的起始位置,所以每次改变了你在其他方法使不会有问题,并就每次都重设。你应该在init或awakeFromNib等方法中设置矩形的初始位置,只发生一次。

后您的按钮改变了矩形的原点的值,你可以告诉视图重绘自身,使用:

[self setNeedsDisplay:YES]; 

改变的RECT起源的代码之后所以加这一点,你应该是精细。

+0

嗨,先谢谢你的回答。 我试过已经在同一个NSView类中做了这个,但它告诉我:“没有已知的类选择器方法setNeedsDisplay' – user3195648 2014-10-17 12:09:52

+0

这是一个类方法 – user3195648 2014-10-17 12:34:33

+0

现在等待它是一个实例方法,但也不起作用 代码:' - (void)move:(int)d if(d == 1){stab1.origin.x = 5; [self setNeedsDisplay:YES]; NSLog(@“test”); } }' }' 该方法被调用,并且在日志中出现“测试”但“stab1”不重合? – user3195648 2014-10-17 13:06:21