【发布时间】:2011-10-12 16:45:52
【问题描述】:
如何检测UIKeyboard 上按下的退格键?
谢谢
编辑:是否有返回按键值的键盘委托?
【问题讨论】:
-
对于空的 UITextField,检测退格检查这个:- stackoverflow.com/a/45327651/996796
标签: iphone objective-c uitextfield uikeyboard
如何检测UIKeyboard 上按下的退格键?
谢谢
编辑:是否有返回按键值的键盘委托?
【问题讨论】:
标签: iphone objective-c uitextfield uikeyboard
如果 UITextField 为空,则不调用 shouldChangeTextInRange 委托方法 您可以继承 UITextField 并覆盖此方法:
-(void)deleteBackward;
{
[super deleteBackward];
NSLog(@"BackSpace Detected");
}
由于 UITextField 符合 UITextInput 协议,所以实现了这个方法,你可以重写它来检测何时按下退格键。 然后,您可以编写自己的协议/委托方法,以在检测到退格时提醒您的自定义文本字段委托。
【讨论】:
首先,引用UITextField 的UIViewController 需要符合UITextFieldDelegate protocol。然后将您的课程设置为delegate 到UITextField(例如[myTextField setDelegate:self])。然后在您的班级中添加以下内容。当 "" 字符串作为replacementString 发送时,您知道它是退格键。
(BOOL)textField:(UITextField *)textField
shouldChangeCharactersInRange:(NSRange)range
replacementString:(NSString *)string
{
if ([string isEqualToString:@""]) {
NSLog(@"Backspace");
}
return YES;
}
【讨论】:
我在textFieldDidBeginEditing 上临时插入一个零空格字符
textField.text = @"\u200B";
在退格上,它会删除那些字符,但在图形上它是一样的!
这是一个 hack,它有效,但它隐藏了占位符文本......不好......
【讨论】: