如何在使用 SpriteKit 和 Swift 的应用程序中使用 Return 键关闭 UITextView 键盘?

how can I close the UITextView keyboard using the Return key in an app using SpriteKit and Swift?

我的应用程序使用 SpriteKit,但我也使用 UITextView 来捕获一些用户数据作为游戏的一部分。一切正常,除非我尝试使用 Return 键关闭 UITextView 的键盘。看起来我的代码中的所有内容都可以让键盘以这种方式关闭。我已将 UITextView 设置为自委托,使用 textView 函数关闭键盘,但没有任何反应。没有错误报告。知道我做错了什么吗?可能是因为我正在使用 didMoveToView() 吗?

import SpriteKit
import UIKit

class GameScene: SKScene, UITextViewDelegate {

override func didMoveToView(view: SKView) {
    /* Setup your scene here */

    backgroundColor = SKColor.redColor()

    let myProjectView = UITextView(frame: CGRect(x: 0.0, y: 0.0, width: 100.0, height: 200.0))
    myProjectView.center = CGPointMake(300.0, 350.0)
    myProjectView.backgroundColor = UIColor.whiteColor()
    self.view?.addSubview(myProjectView)

    // Close keyboard
    myProjectView.delegate = self

    func textView(textView: UITextView, shouldChangeTextInRange range: NSRange, replacementText text: String) -> Bool {
        myProjectView.text = textView.text
        println("step 1")
        if text == "\n" {
            println("step 2")
            textView.resignFirstResponder()
            return false
        }
        return true
    }
}

尝试使用此代码关闭键盘:

func yourTextView(textView: UITextView!, shouldChangeTextInRange: NSRange, replacementText: NSString!) -> Bool {
        if (replacementText == "\n")  {
            yourTextView.resignFirstResponder()
            return false
        }
        return true
    }
}

尝试复制并粘贴以上代码。这对我有用。我不确定您的代码中的错误在哪里,但我知道这段代码可以关闭键盘,所以请尝试一下。

我希望这可以帮助您解决您遇到的问题。

将 UITTextView 声明和原始 textView 函数移动到 didMoveToView 函数之外,获得 Return 关闭键盘的键