是否有办法检测何时在空白的iPhone键盘上按下Backspace/ Delete键UITextField?我想知道什么时候Backspace只有在UITextField空的情况下被按下.
根据@Alex Reynolds在评论中提出的建议,我在创建文本字段时添加了以下代码:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(handleTextFieldChanged:)
name:UITextFieldTextDidChangeNotification
object:searchTextField];
Run Code Online (Sandbox Code Playgroud)
收到此通知(handleTextFieldChanged调用函数),但Backspace在空字段中按键时仍然不会.有任何想法吗?
这个问题似乎有些混乱.我想在Backspace按下键时收到通知.而已.但是当解决方案UITextField已经空了时,解决方案也必须工作.
如何检测按下的退格按钮UIKeyboard?

谢谢
编辑:是否有任何键盘委托返回按键值?
我有一个Verification ViewController,我通过短信获得4位数的验证码,我需要输入这些代码登录,我已经创建了ViewController这样的

你可以看到四个UITextField,我需要只允许一个数字UITextField,
我尝试了什么:我试图使用shouldChangeCharactersInRange:method:,但它没有被调用,我不知道什么是错的,我认为因为UITextFields UITableView所以它不起作用.
我试图检测 UITextfieldDelegate 内部的退格。并找到了这个答案。 /sf/answers/3450640931/
它工作正常。
但我不知道这个函数内部发生了什么。
let char = string.cString(using: String.Encoding.utf8)!
let isBackSpace = strcmp(char, "\\b")
if isBackSpace == -92 {
print("Backspace was pressed")
return false
}
Run Code Online (Sandbox Code Playgroud)
我知道退格的 ascii 代码是 int 类型的“8”,所以我认为上面的函数会像下面的代码一样。
// I thought this char would be "\b" of type char or 08 of type int
// but XCode give the value 0... I don't know why
let char = string.cString(using: String.Encoding.utf8)!
// as far as I know, strcmp …Run Code Online (Sandbox Code Playgroud) 我见过有关如何检测空 UITextField (UIKit) 中的退格键的其他问题。然而,有没有一种简单的方法可以使用 SwiftUI 或使用 Introspect 来做到这一点?使用填充的文本字段执行此操作非常简单,但我无法找到使用空文本字段执行此操作的方法。
谢谢你!
swift ×3
uitextfield ×3
backspace ×2
ios ×2
iphone ×2
objective-c ×2
strcmp ×1
swiftui ×1
uikeyboard ×1
uitableview ×1