iPhone键盘,自定义处理

时间:2012-02-26 04:17:19

标签: ios4 keyboard uitextfield uitextview

当用户在某个UITextView字段中输入内容时,我需要以特定于我的iPhone应用程序的方式做出反应。

三个例子:

  1. 如果用户键入:'E'。
  2. ,我想解雇键盘
  3. 如果用户键入以下内容,我想跳转到新的输入行:'nN'。
  4. 我想忽略用户输入的内容:'A'或'b'。
  5. 我相信必须有一种非常简单的方法来做我想要的事情。但在网上浏览了一段时间后,我找不到明确的答案。

    要走的路是什么?

    感谢任何提示。

3 个答案:

答案 0 :(得分:1)

如果您使用的是UITextField,请为文本字段指定一个委托(实施UITextFieldDelegate协议),然后在委托中实施textField:shouldChangeCharactersInRange:replacementString:。检查替换字符串并根据它是否包含您要查找的字符来执行操作。

如果您使用的是UITextView,请为文本视图指定一个代理(实施UITextViewDelegate协议),然后在代理中实施textView:shouldChangeTextInRange:replacementText:

答案 1 :(得分:1)

您可以尝试在UITextViewDelegate中实现此功能:

https://developer.apple.com/library/ios/#documentation/uikit/reference/UITextViewDelegate_Protocol/Reference/UITextViewDelegate.html

检查replacementText。如果它是@“e”,请在UITextView上调用resignFirstResponder并返回NO。

如果是@“A”或@“b”,则返回NO。

我不太确定另一个,但你也可以在这里处理它并返回NO。

答案 2 :(得分:0)

我只是简单的方法来解决拒绝A和B是做一个这样的简单事情(你会起来检查计时器来运行虚空)

- (void) something {

if([statusString isEqualToString:@"a"]){
    statusString == @"";
}

}

如果用户键入a,这将删除所有内容。 这可能不是你想要的,但我想开始