在 Edit Did Change 事件中解释从数字键盘删除键

Posted

技术标签:

【中文标题】在 Edit Did Change 事件中解释从数字键盘删除键【英文标题】:Interpret Delete Key from Number Pad in a Edit Did Change Event 【发布时间】:2012-03-07 16:03:37 【问题描述】:

我正在尝试捕捉用户在 Edit Did Change 事件中按下 iPhone 数字键盘上的 del 键的情况。我想我可以通过 sender 事件捕获它,但找不到要抓取的对象,并且在网上查看过,但找不到可以通过 sender 事件按下按键的任何地方。

我正在制作电话号码文本字段格式化程序,并希望允许用户使用 del 键删除“-”。但是现在它的编写方式当然就止步于此了。我只需要捕获 del 键并让它忽略格式。

想法?

  - (IBAction)homePhoneEditChanged:(id)sender 
  
      if(homePhone.text.length == 13)
      
          homePhone.text = [homePhone.text substringToIndex:12];
          return;
      

      static BOOL toggle = NO;
      if (toggle) 
      
           toggle = NO;
          return;
      
      // Add a condition here to ignore if the del key was pressed
      if( homePhone.text.length == 3 || homePhone.text.length == 7)
      
          // Add a -
          toggle = YES;
          homePhone.text = [NSString stringWithFormat:@"%@-",homePhone.text];
          
  

【问题讨论】:

【参考方案1】:

如果您要关注本地化,电话号码格式是一个相当复杂的想法。将字段限制为仅数字字段然后遵循this 之类的内容会更好吗?

【讨论】:

谢谢你的信息,但是,我有一个特定的需求,并不需要在这个应用程序中考虑本地。我真的只需要了解如何在此方法中按下 del 键。不过,我会保留此链接以供将来考虑,并非常感谢您的帮助! NP。在遵循 Apple 指南时,这不是一个容易解决的问题。这里有人nacho4d-nacho4d.blogspot.com/2012/01/… 想出了一个技巧。祝你好运。不过,我不知道这是否适用于外部键盘。

以上是关于在 Edit Did Change 事件中解释从数字键盘删除键的主要内容,如果未能解决你的问题,请参考以下文章

高手帮忙!在delphi中如何禁止edit 在中输入东西 ?

iOS 订阅 DID_CHANGE_RENEWAL_STATUS 通知:latest_expired_receipt vs latest_receipt

多个jdk 变更 引起 tomcat插件 启动不了 The JRE could not be found.Edit the server and change the JRE location.(示例

delphi输代码出现Overloaded procedure 'Edit Change' must be marked with the 'overload' dir

MatCheckbox preventDefault()和event.checked值

jquery change事件 在弹窗中无效