【发布时间】:2015-03-26 21:44:03
【问题描述】:
我的应用程序使用 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 步”?在这种情况下。也许尝试
self.view.endEditing(true)而不是textView.resignFirstResponder() -
我忘了说,println 语句都没有打印任何东西
-
你必须在函数 didMoveToView 之外声明你的 func textView
标签: swift keyboard sprite-kit return uitextview