重绘NSView

时间:2011-12-28 19:50:52

标签: objective-c cocoa nsview

很抱歉,如果以前曾经问过这个问题,或者这是一个非常愚蠢的问题,但我无法理解。我的界面中有一个NSView,我在Xcode中创建了一个NSView的子类。然后使用身份检查器,我将我的NSView的类设置为新创建的NSView子类。视图绘制正常,但现在我需要重绘它以更改视图内的字符串。我很确定这与setNeedsDisplay有关,但是我该如何发送消息呢?我在代码中没有特定的视图实例,因为它在Interface Builder中,所以我该怎么办? 再次,抱歉,如果这是愚蠢的。我还没有做过很多NSView。如果需要,请询问更多信息。谢谢!

1 个答案:

答案 0 :(得分:8)

在视图控制器子类中,添加一个类型为NSView子类的ivar。在其上声明一个属性,并将其标记为出口。

// ViewControllerSubclass.h
ViewType *myView;

@property(readwrite, assign) IBOutlet ViewType *myView;

// ViewControllerSubclass.m
@synthesize myView;

现在您有一个插座,将其连接到您通过IB设计的视图。为此,右键单击视图控制器子类(文件所有者)上的IB,您应该看到列表中的插座。

完成后,您现在可以在代码中向视图发送消息了 要将视图标记为需要重绘:

[myView setNeedsDisplay:YES];