gpt4 book ai didi

cocoa - 在事件函数中更新 NSView

转载 作者:行者123 更新时间:2023-12-03 16:59:44 26 4
gpt4 key购买 nike

我有一个主视图( NSView 的子类),由于我是 cocoa 的新手,我想知道如何在事件函数中更新 View 。我知道有很多方法可以获取事件,例如 -(void)mouseMoved:(NSEvent*)event- (void)mouseClicked:(NSEvent*)event 我的算法确定要做什么已准备就绪。我想知道应该在哪里更新主视图:是在 -(void)mouseMoved:(NSEvent*)event 中还是在 - (void)drawRect:(NSRect)dirtyRect 中。如果它在drawRect中,那么我应该如何将信息传递给它?

提前致谢!

最佳答案

这里有一个快速解释,希望能帮助您上路:

  • 处理事件

用户操作通过事件(键盘+鼠标)和操作(由按钮和其他控件解释的事件)传达到您的 View 和窗口。您的 View 应该通过更新模型来对这些事件和操作使用react,模型是代表程序向用户显示的任何内容的较低级别数据结构。如果是 Cocoa, View 通常通过 Controller 对象进行通信,以对模型进行更改。

  • 使显示无效/触发重绘

更新模型后,您需要通知 View 需要重绘。这可以通过多种方式完成,但最简单的方法是-setNeedsDisplay:YES。这将确保在不久的将来的某个时刻,您的 View 将重新绘制自身以显示更新的模型数据。

  • 画画

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

关于cocoa - 在事件函数中更新 NSView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4666708/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com