哪个委托方法将调用单击键盘中的退格按钮

Posted

技术标签:

【中文标题】哪个委托方法将调用单击键盘中的退格按钮【英文标题】:which delegate method will call click on back space button in keyboard 【发布时间】:2011-10-31 05:58:02 【问题描述】:

我有文本字段,当文本字段为空时,我必须单击键盘上的退格按钮。当文本字段有一些文本时,我应该调用shouldChangeCharactersInRange。如何调用解决此问题。

【问题讨论】:

抱歉,我之前的重复评论是针对错误的问题。我的意思是这个:***.com/questions/7757912/…希望那里的答案对你有帮助。 @jrturton 如果我明确地在那儿放置空白空间,占位符正在删除,但我需要占位符。还有一个问题,在这种情况下,我有安全的文本字段,输入任何值都会获得安全的文本跨度> 好的,那么当您在空白字段上按退格键时会发生什么?也许您应该考虑使用带有自己专用按钮的输入附件视图,然后您可以将其连接到您喜欢的任何操作。 【参考方案1】:

你可以抓住那个钥匙

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string

docs 中没有明确写入,但如果按退格键,则最后一个参数string 的长度将为 0。

至少在使用 UITextView 对象时这对我有用。

希望这会有所帮助:)

【讨论】:

只有当文本字段有一些文本时才会调用这个方法。如果文本字段没有文本然后我点击后退空格那个方法没有调用 好收获!但是恐怕没有办法在 ios 中使用公共 API 来捕获键盘事件。至少我不知道。也许这是你能得到的最接近的?【参考方案2】:

你应该阅读 UITextField 的文档...顺便说一下,这里是来自 UITextField 的文档

textFieldShouldClear: 询问代理是否应该删除文本字段的当前内容。

- (BOOL)textFieldShouldClear:(UITextField *)textField

参数

文本字段 包含文本的文本字段。

返回值

如果应该清除文本字段的内容,则为YES;否则,否。

讨论

文本字段调用此方法以响应用户按下内置清除按钮。 (此按钮默认不显示,但可以通过更改文本字段的clearButtonMode 属性中的值来启用。)当开始编辑并且将文本字段的clearsOnBeginEditing 属性设置为 YES 时也会调用此方法.

委托执行此方法是可选的。如果不存在,则清除文本,就好像此方法返回 YES。

可用性

适用于 iOS 2.0 及更高版本。

声明于

UITextField.h

【讨论】:

谢谢你的回复。但我说的是退格键键盘【参考方案3】:

如果文本字段为空或变为空,请在其中放置一个空格字符。如果您检测到退格,并且虚拟空格字符是文本字段中唯一的内容,请不要删除它(暂时)。最后读出文本字段的内容时,如果添加了一个,请删除虚假的前导空格。

【讨论】:

如果我放置空格字符占位符将不会显示,但是当文本字段为空时我需要占位符..任何帮助

以上是关于哪个委托方法将调用单击键盘中的退格按钮的主要内容,如果未能解决你的问题,请参考以下文章

text android使用InputConnection监听和渗透软键盘的退格键

Android:WebView/BaseInputConnection 中的退格键

如何从 UITextField 中的外部键盘检测“命令+退格”

Linux终端下的退格和删除键^H ^? ^[[3~ 杂记

vue自定义长按指令

JS如何禁用浏览器的退格键