我正在使用 SwiftUI,但我正在编写自己的自定义文本掩码,但当用户按“删除”键时我需要删除。我正在使用该onChange
方法,但它没有检测何时按下特殊键。目前我正在使用:
TextField(self.placeholder, text: self.$text)
.onChange(of: self.text, perform: { value in
print(value)
})
Run Code Online (Sandbox Code Playgroud)
有没有办法检测删除按钮是否被按下?或者我应该使用UITextField
代替TextField
?
好吧,你可以使用一种 hacky 的方式来做到这一点。
import SwiftUI
struct SquareView: View {
var placeholder = "test"
@State var text = "test"
@State var textLen = 4
var body: some View {
VStack {
TextField(self.placeholder, text: self.$text)
.onChange(of: self.text, perform: { value in
if value.count < textLen {
self.text = "" // << removed the whole text but here you can insert anything you want to do when the delete button is pressed
}
textLen = value.count
})
}
}
}
Run Code Online (Sandbox Code Playgroud)
请记住,这是一种狡猾的方式并会带来风险。例如,如果用户粘贴比当前文本短的内容。
归档时间: |
|
查看次数: |
2864 次 |
最近记录: |