【问题标题】:Why does this only work sometimes? (UITextView resign first responder question)为什么这只有时有效? (UITextView 辞职第一响应者问题)
【发布时间】:2011-02-01 20:34:34
【问题描述】:

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

为什么这段代码只在某些时候有效?我显然需要它一直工作,但它没有。

- (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];

    }
}

【问题讨论】:

    标签: iphone objective-c xcode keyboard uitextview


    【解决方案1】:

    只有在

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

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

    【讨论】:

    • 假设 myTextView 是具有当前焦点的文本区域。
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-05
        • 1970-01-01
        相关资源
        最近更新 更多