首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >更新事件函数中的NSView

更新事件函数中的NSView
EN

Stack Overflow用户
提问于 2011-01-12 16:37:57
回答 1查看 1.2K关注 0票数 1

我有一个主视图(NSView的子类),由于我是cocoa的新手,我想知道如何在事件函数中更新视图。我知道有许多方法可以通过-(void)mouseMoved:(NSEvent*)event- (void)mouseClicked:(NSEvent*)event之类的事件来确定要执行的操作是否就绪。我想知道应该在哪里更新主视图:是在-(void)mouseMoved:(NSEvent*)event中还是在- (void)drawRect:(NSRect)dirtyRect中。如果它是drawRect格式的,那么我应该如何将信息传递给它?

提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-01-12 22:50:47

这里有一个快速的解释,希望能带你上路:

  • Handle events

用户操作通过事件(键盘+鼠标)和操作(按钮和其他控件解释的事件)传递到视图和窗口。您的视图应该通过更新模型来对这些事件和操作做出反应,模型是表示程序向用户显示的内容的低级数据结构。如果是Cocoa,则视图通常通过控制器对象进行通信,以对模型进行更改。

  • display / trigger redraw

无效显示/触发器重绘

更新模型后,需要通知视图需要重绘。这可以用几种方法来完成,但最简单的方法是-setNeedsDisplay:YES。这将确保在不久的将来的某个时候,视图将重新绘制以显示更新后的模型数据。

  • Draw

在某个时刻,Cocoa会在你的视图上调用-drawRect:。在-drawRect:中,您应该从模型中读取必要的数据并绘制必要的图形。您不应该在此方法中对模型进行任何操作。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4666708

复制
相关文章

相似问题

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