问题的标题真的说明了一切。我试图将按钮和其他控件等AppKit元素绑定到OS X SpriteKit游戏中。我的理解是AppKit元素可以放在SKScenes之上,但这是如何工作的?这会通过NSView处理吗?如何在SpriteKit中创建图层,或者这是一个单独的过程?
答案 0 :(得分:0)
所有AppKit UI元素都是NSResponder的子类,大多数是NSView的子类
这意味着像任何其他Cocoa应用程序一样,您拥有非常相同的响应链。
SpriteKit基于SKNode添加了NSResponder子类,它们都存在于SKView中。
在一个窗口中,所有响应者链中的所有窗口都将具有相同的窗口。 即使控件和视图位于菜单栏中的单独窗口或菜单中,一切都会共享响应者链。在NSApplication的某个级别。
您真正想要做的是确定最佳用户体验。但NSResponder的任何子类都可以在链中转发消息。 只要在链中处理该消息,它就会起作用。
这允许您在应用程序委托或窗口控制器甚至视图控制器中设置IBAction方法,并将这些方法选择器指定为控件的操作。响应者链和称为nil-targeted消息传递的东西是Cocoa中最基本和最强大的一些设计模式,它们由Objective-C的特性实现。花一些时间与响应者链上的Apple文档。然后考虑只使用按钮或滑块的简单应用程序。将相同的应用到您的游戏中。