gpt4 book ai didi

macos - 使用 NSWindow 还是 NSViewController?

转载 作者:行者123 更新时间:2023-12-03 17:33:45 25 4
gpt4 key购买 nike

如果我只有一个窗口,其中的元素未删除/添加,我应该处理 NSWindow 中的所有事件和其他内容,还是应该创建 NSViewController?

最佳答案

一般来说,您应该尝试在尽可能深的位置处理事件。例如,如果您的窗口有一个 NSButton,那么该按钮应该负责处理其自身的点击 - 而不是窗口!当然 NSButton 有这方面的 API,例如 setAction:

有些 View 的内容对 Cocoa 来说是不透明的,您希望在其中负责事件调度。一个例子是 NSOpenGLView,您在其中渲染一些场景并需要将事件定向到场景中的组件。该建议仍然适用:覆盖 NSOpenGLView 上的事件处理程序(mouseDown: 等)并从那里分派(dispatch)。

还有更高级别的方法可用,例如[NSWindow sendEvent]。当您希望干预整个窗口的事件分派(dispatch)(例如将事件重定向到其他窗口)时,最好覆盖这些设置。一般来说,这是没有必要的,并且会使您的应用程序更加脆弱。

NSViewController 在桌面上的作用逐渐减弱(与 UIKit 相比),并且很少需要。

关于macos - 使用 NSWindow 还是 NSViewController?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30660305/

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