首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重绘NSView

重绘NSView
EN

Stack Overflow用户
提问于 2011-12-29 03:50:52
回答 1查看 5.7K关注 0票数 8

很抱歉,如果之前有人问过这个问题,或者这是一个非常愚蠢的问题,但我想不出来。我的接口中有一个NSView,并且我在Xcode中创建了NSView的一个子类。然后使用身份检查器,我将NSView的类设置为新创建的NSView子类。视图绘制得很好,但现在我需要重画它以更改视图中的字符串。我很确定这与setNeedsDisplay有关,但我应该将消息发送到什么地方?我在代码中没有我的视图的特定实例,因为它在Interface Builder中,那么我该怎么办呢?再说一次,如果这很愚蠢,我很抱歉。我还没有对NSView做太多的工作。如果你需要的话,可以询问更多的信息。谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-29 04:04:18

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

代码语言:javascript
复制
// ViewControllerSubclass.h
ViewType *myView;

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

// ViewControllerSubclass.m
@synthesize myView;

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

完成此操作后,现在就可以在代码中向视图发送消息了。

要将视图标记为需要重绘,请执行以下操作:

代码语言:javascript
复制
[myView setNeedsDisplay:YES];
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8660562

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档