2015-04-04 30 views
0

我有一個SKLabelNode,我正在使用不可見的UITextField進行更新。所以當用戶在鍵盤上鍵入內容時,標籤會變成該字符串。下面的代碼是我正在使用的。它在iOS模擬器中非常完美,但是當我在手機上運行它時,每次鍵入字符時UITextField都是空的,所以字符串永遠不會變長。我錯過了什麼?在手機vs模擬器上的不同的UITextField行爲

var inputTextField = UITextField(frame: CGRectMake(0, 0, 100, 30)) 
    var inputTextLabel = SKLabelNode(fontNamed:"Thonburi") 


override func didMoveToView(view: SKView) { 
    inputTextLabel.text = ""; 
    inputTextLabel.fontSize = 25; 
    inputTextLabel.position = CGPoint(x:10, y:CGRectGetMidY(self.frame)); 
    inputTextLabel.horizontalAlignmentMode = SKLabelHorizontalAlignmentMode.Left 
    self.addChild(inputTextLabel) 

    inputTextField.delegate = self 
    inputTextField.hidden = true 
    inputTextField.becomeFirstResponder() 
    self.inputTextField.keyboardType = UIKeyboardType.ASCIICapable 
    self.view?.addSubview(inputTextField) 

} 

func textField (textField: UITextField, shouldChangeCharactersInRange range:NSRange, replacementString string: NSString){ 
    var newString = (textField.text as NSString).stringByReplacingCharactersInRange(range, withString: string) 
    inputTextLabel.text = newString 
} 

回答

0

我想通了,文本字段功能應該返回一個布爾值,像這樣

func textField (textField: UITextField, shouldChangeCharactersInRange range:NSRange, replacementString string: NSString) -> Bool { 
    var newString = (textField.text as NSString).stringByReplacingCharactersInRange(range, withString: string) 
    inputTextLabel.text = newString 
    return true 
} 
相關問題