我目前正在使用 SwiftUI
开发应用程序。
我准备了一个基本字符String
和一个TextField
,如果在String
中输入的字符TextField
包含在基本字符String
中,我想改变目标字符的颜色。
到目前为止,我已经实现了将输入字符 String
更改为不同的字符,但是我无法更改字符的颜色。
在使用 SwiftUI
时有没有办法做到这一点?
在下面的代码的情况下,如果我输入 apple
,基础 apple
中的 String
部分将更改为不同的 String
( replaceString ),但是我只想更改文本颜色,同时保持相同的 String
。
代码如下:
import SwiftUI
struct CheckWords: View {
@State var baseString = "I like apples but don't like oranges"
@State var word = "apple"
var body: some View {
VStack{
HStack{
Text("redWord")
TextField("redWord",text:self.$word)
.textFieldStyle(RoundedBorderTextFieldStyle())
.autocapitalization(.none)
}
.padding()
Text(self.baseString)
.font(.title)
.padding()
Divider()
Text("result:")
.padding()
Text(self.changeString())
.font(.title)
.padding()
}
}
func changeString() -> String{
if let range = baseString.range(of: word) {
let replaceString = baseString.replacingCharacters(in: range, with: "replaceString")
return replaceString
}else{
return self.baseString
}
}
}
Xcode:12.3 版
iOS:14.0