swift - 无法将 NSButton 添加到 Sprite-Kit 场景

标签 swift sprite-kit nsobject nsbutton skview

我是 OS X 编程的新手。我正在使用 Sprite-Kit 为 Mac 构建一个简单的游戏,但遇到了向 View 添加 NSButton(和其他 NSObject)的问题。它只是不起作用 - 没有按钮显示。 我的代码:

class LaunchScene: SKScene {

override func didMoveToView(view: SKView) {

    let background = SKSpriteNode(imageNamed: "Wall")
    background.size = CGSize(width: 1600, height: 1200)

    background.position = CGPoint(x: CGRectGetMidX(self.frame),
                                  y: CGRectGetMidY(self.frame))

    self.addChild(background)

    let button = NSButton(frame: NSRect(x: self.frame.width/2,
                 y: self.frame.height/2, width: 50, height: 25))
    self.view!.addSubview(button) //button doesn't show up

我该如何解决这个问题?

附注我尝试在我的 View 中添加一个图层,正如一些博主建议的那样,在这种情况下,按钮实际上确实显示了,但屏幕完全变黑或仅呈现故障。

let layer = CALayer()
self.view!.layer = layer
self.view!.wantsLayer = true

最佳答案

好的,最后我想出了如何做到这一点(如果 self.view!.wantsLayer 等于“true”,则不需要为您的 View 分配图层):

class LaunchScene: SKScene {

override func didMoveToView(view: SKView) {

let background = SKSpriteNode(imageNamed: "Wall")
background.size = CGSize(width: 1600, height: 1200)

background.position = CGPoint(x: CGRectGetMidX(self.frame),
                              y: CGRectGetMidY(self.frame))

self.addChild(background)

self.view!.wantsLayer = true

let button = NSButton(frame: NSRect(x: self.frame.width/2,
             y: self.frame.height/2, width: 50, height: 25))
self.view!.addSubview(button)

关于swift - 无法将 NSButton 添加到 Sprite-Kit 场景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37450021/

相关文章:

ios - 如何才能以这样的方式存储数据:删除然后安装ios后数据不会丢失?

iOS测试游戏中心排行榜不同测试用户

ios - 在swift中删除元素时索引超出范围数组错误

ios - 当 self 等于 NSObject 时委托(delegate)丢失

ios - 快速使用 Spotify SDK 的编译器错误

ios - 如何访问数组中的随机索引

ios - 如果我调用 cancelAllOpeartions,OperationQueue 不会从队列中删除操作

swift - SpriteKit SKTextures

ios - 如何对填充了我自己的对象的 NSMutableArray 进行排序

iphone - 如何从 NSMutableArray 访问 NSObject 类变量进行排序