在 SKScene 中退出 First Responder 功能

Resign First Responder function in SKScene

我正在尝试创建一个需要在 SKScene 中创建文本字段的游戏。我已经成功地构建了文本字段,但问题是放下键盘。到目前为止,这是我的代码。

import SpriteKit
import GameplayKit
import UIKit

class GameScene: SKScene {
var sceneFrame : CGRect = CGRect()
var textFieldFrame : CGRect = CGRect()
var textField : UITextField = UITextField()
var skView: SKView = SKView()

override func didMove(to view: SKView) {
    sceneFrame = CGRect(origin: .zero, size: CGSize(width: 200, height: 200))
    let scene = SKScene(size: sceneFrame.size)
    scene.backgroundColor = UIColor.lightGray
    textFieldFrame = CGRect(origin: .init(x: 100, y: 200), size: CGSize(width: 200, height: 30))
    textField = UITextField(frame: textFieldFrame)
    textField.backgroundColor = UIColor.white
    textField.placeholder = "Phone Number"
    textField.keyboardType = .numberPad
    textField.resignFirstResponder()
    self.view!.addSubview(textField)
    self.view!.presentScene(scene)
    // Where to put the textField.resignFirstResponder() ?
}

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
}

override func update(_ currentTime: TimeInterval) {
    // Called before each frame is rendered

}
}

任何答案都会有所帮助。

问题是你没有添加:

textfield.delegate = self

然后你可以调用函数:

func textFieldShouldReturn(textField: UITextField) -> Bool {   

    // Hides the keyboard  

    textField.resignFirstResponder()  
    return true  
}   

声明委托语句启动函数textFieldShouldReturn。

希望这对您有所帮助:)