2010-07-31 121 views
0

如何判断用户按下了哪些按键到textView?可可触摸 - 键盘捕捉

而之前,你问,因为它听起来类似于键盘记录,我做了一个打字的应用程序,我需要知道他们输入了正确的匹配键他们被提示。

谢谢!

回答

1

您应该将UITextView的delegate设置为您的某个类。 (在IB或编程方式,无所谓)

在你的委托,你可以把下面的函数,或类似的东西:

-(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range 
        replacementText:(NSString *)text 
{ 
    if ([text length] == 0) return YES; // always allow deletion of characters 

    NSString *new = [textView.text stringByReplacingCharactersInRange:range 
                  withString:text]; 

    if ([new length] > 100) // PUT IN YOUR MAGIC CONDITION HERE 
    { 
     return NO; // don't allow the edit to happen 
    } 

    return YES; // by default, allow the edit to happen 
} 

这只会限制输入100个字符,但你可以把它像你认为合适的那样复杂。

编辑 ps的,你问“用户按什么键”,但因为我们也有复制粘贴&和自动校正,这可能会给一个text是超过1个字符!

+0

我把它链接到我的文件所有者(视图控制器)是不是很好? – user377419 2010-07-31 13:02:38

+0

是的,如果你已经让你自己的视图控制器类包含这个函数,并且将控制器的类设置为IB中你自己的类,它应该可以工作。 – mvds 2010-07-31 13:22:14

+0

告诉我,如果我做这件事的权利。我有2类应用程序delagate和视图控制器。我将我的textView的delagate拖入文件所有者。我复制粘贴到我的视图控制器的方法,并像这样调用它。 '[self textView:typingText shouldChangeTextInRange:5:@“替换为”];' 我假设参数是要影响的文本视图的名称,文本视图中的字符数或所需范围以便在文本与参数不匹配时影响文本并希望放入文本。 – user377419 2010-07-31 13:34:04