我正在用swift做打字游戏,但有一些问题。首先这是我的代码,例如当你打 "사랑 "的过程是这样的。
if let input = textField.text{
//비교를 위한 글자 분해한 배열
let whatYouHaveToWrite = Text.init().textArray[a]
let whatYouAlreadyWrite = input
let attr = NSMutableAttributedString(string: viewLabel.text!)
for i in 0...Array(whatYouHaveToWrite).count-1{
//한글자 맞았는지 인식하는 것
if i <= Array(whatYouAlreadyWrite).count-1{
if Array(String(whatYouAlreadyWrite))[i] == Array(whatYouHaveToWrite)[i]{
attr.addAttribute(.foregroundColor, value: UIColor.systemBlue, range: NSRange(location:i,length:1))
ENTER()
}
//한글자 틀렸는지 인식하는 것
if i>0 {
if Array(String(whatYouAlreadyWrite))[i-1] != Array(whatYouHaveToWrite)[i-1]{
attr.addAttribute(.foregroundColor, value: UIColor.systemRed, range: NSRange(location:i-1,length:1))
}
}
} else{ break }
}
}
例如,当你输入 "사랑 "的过程是这样的。"ㅅ" -> "사" -> "살" -> "사랑",如果我输入 "사",你可以看到在我的代码中,"사 "的颜色被改变为蓝色,但问题是,当你输入 "살",以便输入 "사랑"。我想在 "if Array(String(whatYouAlreadyWrite)))[i] == Array(whatYouHaveToWrite)[I]"中程序化地按下回车键,有什么方法可以触发程序化的回车键?
如果按回车键的意思只是要取消键盘,你可以使用 textField.resignFirstResponder()
.
而且你可以使用textField的委托方法来跟踪用户输入的每个字符。textField(_:shouldChangeCharactersIn:replacementString:).