重绘NSView

the*_*kmc 5 cocoa objective-c nsview

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

小智 8

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

// ViewControllerSubclass.h
ViewType *myView;

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

// ViewControllerSubclass.m
@synthesize myView;
Run Code Online (Sandbox Code Playgroud)

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

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

[myView setNeedsDisplay:YES];
Run Code Online (Sandbox Code Playgroud)