我有一个textview,当我按完成textview开始一个新行。textview键盘不会退出时,我按完成iOS
我已经实现了这些方法,并添加了所有与会代表
@property (nonatomic, strong) IBOutlet UITextView *textField;
-(void)textViewDidEndEditing:(UITextView *)textView //was UITextField
{
[self.textField resignFirstResponder];
}
- (BOOL)textFieldShouldReturn:(UITextView *)textField{
[textField resignFirstResponder];
return YES;
}
我设置了键盘回车键在属性检查器中完成的。 我想键盘上的完成键辞去第一响应者,它似乎不工作。
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
if([text isEqualToString:@"\n"]) {
[textView resignFirstResponder];
return NO;
}
return YES;
// error thrown here saying code will never execute
if(range.length + range.location > textField.text.length)
{
return NO;
}
NSUInteger newLength = [textField.text length] + [string length] - range.length;
return newLength <= 300;
}
如何添加这两个语句,以便他们将工作没有错误?
仅供参考 - 没有理由叫'resignFirstResponder'在'textViewDidEndEditing:'方法,因为该方法仅当文本视图已经辞职被称为急救人员。 – rmaddy
@rmaddy好的,如果我删除那些resignfirstreponder方法,它会工作 – smithyy
只是从'textViewDidEndEditing:'方法中去掉对'resignFirstResponder'的调用。顺便说一句 - 你为UITextView发布了一个委托方法,为UITextField发布了另一个委托方法。你真的在使用哪一个? 'textFieldShouldReturn:'方法不会与'UITextView'一起使用。它用于'UITextField'。巨大的差异。 – rmaddy