Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在场景中显示键盘,并根据按键在精灵节点上执行操作_Ios_Sprite Kit_Skscene - Fatal编程技术网

Ios 在场景中显示键盘,并根据按键在精灵节点上执行操作

Ios 在场景中显示键盘,并根据按键在精灵节点上执行操作,ios,sprite-kit,skscene,Ios,Sprite Kit,Skscene,我正在尝试学习SpriteKit并使用一些简单的示例应用程序 目前,我正在努力实现以下目标: 在场景上显示键盘 如果用户点击“A”,则在精灵节点上执行某些操作,如果用户点击“B”,则在其他精灵节点上执行某些其他操作 为了达到第一个要求,我尝试了以下步骤: 步骤1:在GameViewController.swift中,添加了对视图的引用 var keyView: KeyboardDummyView? 步骤2:在viewDidLoad()中创建视图,将其分配给ivar,并将其添加到控制器的视图中。

我正在尝试学习SpriteKit并使用一些简单的示例应用程序

目前,我正在努力实现以下目标:

  • 在场景上显示键盘
  • 如果用户点击“A”,则在精灵节点上执行某些操作,如果用户点击“B”,则在其他精灵节点上执行某些其他操作
  • 为了达到第一个要求,我尝试了以下步骤:

    步骤1:在GameViewController.swift中,添加了对视图的引用

    var keyView: KeyboardDummyView?
    
    步骤2:在viewDidLoad()中创建视图,将其分配给ivar,并将其添加到控制器的视图中。还将“自我”分配给游戏场景中的反向参考ivar

    override func viewDidLoad() {
        super.viewDidLoad()
    
        if let scene = GameScene.unarchiveFromFile("GameScene") as? GameScene {
            // So scene can forward touch event back here.
            scene.gvc = self
    
            // Other config
    
            keyView = KeyboardDummyView(frame: self.view.frame)
             self.view.addSubview(keyView!)
        }
    }
    
    步骤3:添加了一个处理点击/触摸的功能

    func handleTap() {
        // Show the keyboard
        keyView!.becomeFirstResponder()
    }
    
    第4步:在GameSecene.swift中添加了对控制器的引用

    var gvc: GameViewController?
    
    第5步:在触摸中开始触摸

    gvc!.handleTap()
    
    但由于某些原因,当点击屏幕时,它不会显示键盘:(

    以下是代码库:

    如果我做错了什么,请告诉我


    注意:我正在Xcode 6.0.1中尝试此功能

    “未按预期工作”不是问题描述,请澄清。感谢您的建议..更新了相同内容。