【问题标题】:(iOS) How do I get notified when the keyboard's back button is pressed?(iOS) 如何在按下键盘的后退按钮时收到通知?
【发布时间】:2011-12-07 03:49:19
【问题描述】:

我正在尝试确定何时按下键盘的后退按钮。当文本字段中有文本时,这很容易。我只是使用委托方法 - (BOOL)textField:(UITextField *)aTextField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string。问题是当文本字段为空并且按下后退按钮时,不会调用此方法。

有没有人知道即使文本字段为空也能收到通知?

【问题讨论】:

标签: ios notifications


【解决方案1】:

您是否可以在开始编辑时将单个空格默认为空字段(并且该字段为空),以便退格成为正常事件?您可以在离开字段和/或键入第一个普通字符时删除空格。有点破解,但我认为你不会以任何其他方式得到它。

【讨论】:

    【解决方案2】:

    看看这个答案..

    Receive iPhone keyboard events

    在您的 keyPressed 函数中,检查文本字段值是否有任何内容;

    【讨论】:

    • 谢谢。我试过这个。如果文本字段已经为空,则不会触发该事件 :( 我会继续搜索。
    【解决方案3】:

    在委托方法中:

    (BOOL) textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)string

    保留之前的字符串并与字符串进行比较,如果字符串的计数比之前修改的字符串少1,则表示删除被按下。否则将字符串存储到较早的字符串中。 希望这会对你有所帮助。

    【讨论】:

    • 谢谢。与上述答案相同的问题。即使文本字段为空,我也需要知道何时按下退格按钮,并且该委托方法仅在文本更改时才会触发。清空不计算。
    • 某个键被按下,你没有得到任何文本,这意味着退格/删除被按下...(只需检查是否在空文本字段中调用了委托方法)
    • 这就是问题所在。如果文本字段已经为空,则不会调用委托方法。我找到了一种解决方法,即始终在文本字段中保留一个额外的空间。
    • 请正确阅读问题然后回答它......因为已经提到“文本字段为空时出现问题”
    猜你喜欢
    • 2012-04-30
    • 1970-01-01
    • 1970-01-01
    • 2017-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-27
    • 2019-10-06
    相关资源
    最近更新 更多