很抱歉,如果之前有人问过这个问题,或者这是一个非常愚蠢的问题,但我想不出来。我的接口中有一个NSView,并且我在Xcode中创建了NSView的一个子类。然后使用身份检查器,我将NSView的类设置为新创建的NSView子类。视图绘制得很好,但现在我需要重画它以更改视图中的字符串。我很确定这与setNeedsDisplay有关,但我应该将消息发送到什么地方?我在代码中没有我的视图的特定实例,因为它在Interface Builder中,那么我该怎么办呢?再说一次,如果这很愚蠢,我很抱歉。我还没有对NSView做太多的工作。如果你需要的话,可以询问更多的信息。谢谢!
发布于 2011-12-29 04:04:18
在您拥有的视图控制器子类中,添加一个类型为您的NSView子类的ivar。在其上声明一个属性,并将其标记为outlet。
// ViewControllerSubclass.h
ViewType *myView;
@property(readwrite, assign) IBOutlet ViewType *myView;
// ViewControllerSubclass.m
@synthesize myView;现在您有了一个插座,将它连接到您通过IB设计的视图。为此,在视图控制器子类(文件的所有者)上右键单击IB,您应该会在列表中看到插座。
完成此操作后,现在就可以在代码中向视图发送消息了。
要将视图标记为需要重绘,请执行以下操作:
[myView setNeedsDisplay:YES];https://stackoverflow.com/questions/8660562
复制相似问题