如何识别ios中的键盘按键?

时间:2014-03-20 16:43:59

标签: ios keyboard notifications nsnotificationcenter

我已经全神贯注地寻找答案,但基本上我要做的是当一个人按下他们的iphone键盘上的冒号键我希望得到通知并执行某个动作。我希望这是有道理的。如果您确实提供了答案,请记住我是一个相对较新的IOS开发人员:)

谢谢!

编辑:如果我的上述陈述没有理解,这将是理想情况:

  1. 用户点按文字字段
  2. 用户按下数字键1
  3. 发送用户按下数字1键
  4. 的通知
  5. 而不是打印的数字1,文本将替换为数字2.
  6. 这是一个简单的例子。

2 个答案:

答案 0 :(得分:1)

以下是UITextField的委托方法示例,如果用户尝试输入大写字符,则会显示为小写字符:

-(BOOL)textField:(UITextField *)textField
        shouldChangeCharactersInRange:(NSRange)range
        replacementString:(NSString *)string {
    NSString* lc = [string lowercaseString];
    if ([string isEqualToString:lc])
        return YES;
    textField.text =
        [textField.text stringByReplacingCharactersInRange:range
                                                withString:lc];
    return NO;
}

您应该能够为您的特定用例做类似的事情。

答案 1 :(得分:0)

如前所述,使用此回调并在其中进行更改:

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

    //check here if the new character is the one you are looking for
    if ([string isEqualToString:@"a"])
    {
         //create a new string with the character you want to use instead
         NSString *newText = [textField.text stringByReplacingCharactersInRange:range withString:@"A"];

         //set it as the text for your text field
         [textField setText:newText];
         return NO;
    }

     return YES;
}