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

时间:2015-03-26 21:44:03

标签: swift keyboard sprite-kit return uitextview

我的应用程序使用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
    }
}

2 个答案:

答案 0 :(得分:0)

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

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

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

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

答案 1 :(得分:0)

在didMoveToView func之外移动UITTextView声明和原始textView func获取Return键以关闭键盘