首页 > 解决方案 > 是否可以在 swift 中以编程方式按 ENTER?

问题描述

我正在快速制作打字游戏。但有一些问题。首先这是我的代码。

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]”中以编程方式按下 ENTER,并且有一些方法可以以编程方式触发按下输入?

标签: swiftxcodeif-statemententer

解决方案


如果按 enter 只是意味着关闭您可以使用的键盘textField.resignFirstResponder()

您可以使用 textField 委托方法来跟踪用户输入的每个字符:textField(_:shouldChangeCharactersIn:replacementString:)


推荐阅读