我的应用程序使用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
}
}
答案 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键以关闭键盘