在UITextView上按下返回键

时间:2015-10-12 07:08:10

标签: ios objective-c uitextview

我有一个UITextView我在聊天应用程序中用作文本条目。当用户按下返回时,我想做一些动作,例如保存聊天消息。 我还没有找到一个允许我这样做的解决方案(很多用于TextFields但不能用于TextView)。 这是我目前正在尝试的解决方案,这似乎是我能找到的最明显的解决方案,但它不起作用,在调试中我看到方法没有被触及:

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
    if ([text isEqualToString:@"\n"]) {
        NSLog(@"Return pressed");
    } else {
        NSLog(@"Other pressed");
    }
    return YES;
}

在我的聊天.h文件中:

@interface ChatTableViewController : UITableViewController <UITextViewDelegate>

和viewdidload .m文件

- (void)viewDidLoad {
    [super viewDidLoad];

    enterText.delegate = self;
    // more
}

顺便提一下,如果在聊天程序中使用比UITextView更好的字段作为输入,请告诉我。

非常感谢

2 个答案:

答案 0 :(得分:0)

试试这种方式。没有必要和代表一起去。

在初始化textView的位置添加此事件响应程序。

[theTextView addTarget:self
                action:@selector(targetMethodToPerformCustomOperation)
      forControlEvents:UIControlEventEditingDidEndOnExit];

答案 1 :(得分:0)

  

...但它不起作用,在调试中我发现该方法没有被触及

你的问题显然是没有调用委托方法。修复委托并使用您已有的代码:这很好。