2011-10-13 35 views
0

我想确定何时按下键盘的后退按钮。当文本字段中有文本时,这很容易。我简单地使用委托方法 - (BOOL)textField:(UITextField *)aTextField shouldChangeCharactersInRange:(NSRange)范围replacementString:(NSString *)字符串。问题是当文本字段为空并且后退按钮被按下时,此方法未被调用。(iOS)如何在按下键盘后退按钮时收到通知?

有人知道即使文本字段为空时如何获得通知吗?

+0

你的意思是删除/退格键? – jrturton

+0

是的。删除退格键。 – Quentamia

+0

试试这个https://stackoverflow.com/a/41498130/5725791 – Ramakrishna

回答

3

当您开始编辑(并且该字段为空)时,您可以在单个空间中默认为空字段,以便退格变为正常事件吗?当离开字段和/或输入第一个正常字符时,可以删除空格。黑客的位,但我不认为你会以任何其他方式达到目的。

+0

这是一个好主意,我会给你一个镜头 – Quentamia

+0

工作就像一个魅力 – Quentamia

0

退房这个答案..

Receive iPhone keyboard events

在你的keyPressed功能,检查,看看是否文本字段值有任何内容;

+0

谢谢。我试过这个。如果文本框已经空了,这个事件不会被解雇:(我会继续搜索的) – Quentamia

-1

在委托方法:

(BOOL)的TextView:(UITextView的*)的TextView shouldChangeTextInRange:(NSRange)范围replacementText:(的NSString *)字符串

保留早期字符串,并将其与字符串比较,如果字符串的数量比先前修改的字符串小1,则表示删除被按下。否则将字符串存储到更早的字符希望这会帮助你。

+0

谢谢。答案我需要知道什么时候退格按钮被按下,即使文本字段为空,并且委托方法只会在文本发生变化时触发,清空为空不计算 – Quentamia

+0

某些键被按下,但您没有任何文本,这意味着后退空间/删除被按下...(只是检查委托方法是否在空文本字段中调用) – UPT

+0

这是问题。如果文本字段已经是空的,委托方法不会被调用。一个解决方法是始终在文本字段中保留一个额外的空间 – Quentamia

相关问题