【发布时间】:2009-06-20 20:22:52
【问题描述】:
作为 Cocoa 的新手,我很难理解为什么通用 NSResponder 子类会以它们看起来的方式实现关键事件。
在我的程序中,我有一个 NSWindow 子类,它占据了整个屏幕,并且必须处理关键事件。有几个主要的命令可以改变程序的整个状态(例如,当用户按下空格键时暂停计时器),像 NSTextField 句柄这样的子视图是没有意义的。
在我看来,委托(控制器)应该得到这些事件。相反,我发现我必须编写一堆凌乱的胶水代码让窗口(通过其keyDown: 和interpretKeyEvents: 选择器)通知控制器,或者我必须将一堆控制器代码移动到 NSWindow 子类自己。
这很混乱,我的直觉告诉我我错过了一些东西。有更清洁的解决方案吗?
【问题讨论】:
标签: objective-c cocoa