我正在制作一个小小的终端,我希望添加文本的能力,以便输入"键入"一次一个角色。现在我正在做的是循环遍历字符串,插入一个字符,然后调用Thread.sleep
(forTimeInterval :)。但是,正如您在下面的gif
中看到的那样,它不会一次打印出一个字符,它只是等待整个for循环结束然后显示文本。每次循环后,我需要做些什么来更新显示? (我试过setNeedsDisplay:
,但我认为没有做任何事情。)
编辑:这里是代码(控制台是UITextView
):
func appToConsole(input:ProgramResponse) {
for line in input {
var textProgress = self.token
var oldText = console.text ?? ""
for char in line.text.characters {
textProgress.append(char)
console.text = textProgress + oldText
Thread.sleep(forTimeInterval: TimeInterval(line.textSpeed))
}
textProgress += "\n"
console.text = textProgress + oldText
}
}