我有一个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更好的字段作为输入,请告诉我。
非常感谢
答案 0 :(得分:0)
试试这种方式。没有必要和代表一起去。
在初始化textView的位置添加此事件响应程序。
[theTextView addTarget:self
action:@selector(targetMethodToPerformCustomOperation)
forControlEvents:UIControlEventEditingDidEndOnExit];
答案 1 :(得分:0)
...但它不起作用,在调试中我发现该方法没有被触及
你的问题显然是没有调用委托方法。修复委托并使用您已有的代码:这很好。