2014-01-22 99 views
0

我有TextView.In TextView我必须设置最大160个字符到TextView包括空间。如果我点击返回键盘应该down.I有编码。它工作后输入160字符only.So如果我点击retun,紧紧地它应该下去,它不应该在160个字符之后包括空格。即使我在点击回车后进入“你好吗?”。在文本视图中,键盘应该隐藏。TextView与键盘隐藏

我的编码是

-(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range  replacementText:(NSString *)text 

{ 

    //First type for space 

    /* 
    return txtviewAsk.text.length + (text.length - range.length) <= 160; 
    [txtviewAsk resignFirstResponder]; 
    */ 

    //Second type with correct method 

    NSUInteger newLength = (textView.text.length - range.length) + text.length; 
    if(newLength <= MAX_LENGTH) 
    { 
     //[txtview resignFirstResponder]; 
      return YES; 
    } 
    else 
    { 
     NSUInteger emptySpace = MAX_LENGTH - (textView.text.length - range.length); 
     textView.text = [[[textView.text substringToIndex:range.location] 
         stringByAppendingString:[text substringToIndex:emptySpace]] 

        stringByAppendingString:[textView.text substringFromIndex:(range.location + range.length)]]; 


     [txtviewAsk resignFirstResponder]; 
     return NO; 

     } 


} 
+0

结帐这个答案http://stackoverflow.com/questions/703754/how-to-dismiss-keyboard-for-uitextview-with-return-key – Divya

回答

0
-(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text 
{ 

    if(textView.text.length >=160) 
    { 
     [textView resignFirstResponder]; 
     return NO; 

    } 
    if([text rangeOfCharacterFromSet:[NSCharacterSet newlineCharacterSet]].location == NSNotFound) { 
    return YES; 

    } 

    [textView resignFirstResponder]; 
    return NO; 
} 

基本上,第一部分是检查长度并结束编辑和第二部分是用于返回键..

PS:第二部分来自这个rebito从here的答案。所以,信贷去他..

+0

谢谢你的编码。 – user3182143

0
Add return no to the below of the if condition. 
if(newLength <= MAX_LENGTH) 
{ 
    if ([textView.text isEqualToString:@"\n"]) { 
      [textView resignFirstResponder]; 
      return NO; 
      } 
    return YES; 
}