为什么这有时只能起作用? (UITextView辞职第一响应者问题)

时间:2010-03-28 22:54:00

标签: iphone objective-c xcode keyboard uitextview

当用户按下“发送”(返回)按钮时,我希望键盘缩回并执行其他操作,例如发送消息。但它只适用于某些......

为什么这段代码只适用于某些人?我显然需要它一直工作,但事实并非如此。

- (void)textViewDidChange:(UITextView *)inTextView {

    NSString *text = myTextView.text;

    if ([text length] > 0 && [text characterAtIndex:[text length] -1] == '\n') {
        myTextView.text = [text substringToIndex:[text length] -1];
        [myTextView resignFirstResponder];
        [self sendMessage];

    }
}

3 个答案:

答案 0 :(得分:1)

只有在

时才会被调用
([text length] > 0 && [text characterAtIndex:[text length] -1] == '\n')

是真的。总是这样吗?也许在状态之外和之内添加一个NSLog语句,看它是否一直都是真的。

答案 1 :(得分:0)

检查\ n看起来很奇怪。你为什么这样做?

答案 2 :(得分:0)

此方法在名为inTextView的视图中传递,但在您引用myTextView的方法中,您没有提到设置的位置。

我建议您将所有myTextView引用更改为inTextView,看看是否可以解决问题,因为您可能正在使用除myTextView之外的UITextView并因此看到您的问题。