2011-02-01 26 views
5

Tôi gặp sự cố khi từ chức bàn phím sau khi nhấp vào nút xong. Tôi đang sử dụng textViewTrong textView khi tôi nhấp vào nút xong, bàn phím sẽ không từ chức

-(BOOL)textViewShouldReturn:(UITextView *)textView 
{ 
    if(textView == addressView) 
    { 
     if(isNotif) 
     { 
      [self setViewMovedUp:NO]; 
     } 
     textView.text= [textView.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; 
     [addressView resignFirstResponder]; 
    } 
    return YES; 
} 

Thay vì từ chối bàn phím, con trỏ sẽ đến dòng mới trong trường văn bản. Xin hãy giúp tôi.

Cảm ơn bạn Praveena.

+2

Không có đại biểu như vậy - (BOOL) textViewShouldReturn: (UITextView *) textView – KingofBliss

Trả lời

4

Sử dụng các đại biểu sau

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text 
{ 
    if (textView == YourTextField){ 
     if ([text isEqualToString:@"\n"]) { 
       [textView resignFirstResponder]; 
       return NO; 
     } 
    } 
    return YES; 
} 

Thông thường trong TextView phím Enter là sử dụng để thêm \ n đến các văn bản, vì vậy nó tốt hơn để thêm một số nút khác để trên cùng của UItextView và mã chức năng từ chức có .

EDIT:

Không có đại biểu như vậy -(BOOL)textViewShouldReturn:(UITextView *)textView

+0

đảm bảo bạn đã đặt đại biểu – KingofBliss

+1

cách đây là câu trả lời, mã này ẩn bàn phím trên bất kỳ đầu vào ký tự nào! –

1

này sẽ xảy ra nếu ViewController đó là trên TextView này trong hệ thống phân cấp xem không phải là đại biểu của TextView này. Nếu không thì ViewController sẽ không bao giờ nhận được thông báo textViewShouldReturn. Trong viewController sau khi subView (UITextView) được tạo ra.

aTextView.delegate = self; 

Để kiểm tra để chắc chắn rằng nó được nhận được gọi là thêm video này vào chức năng và thử nghiệm của bạn

NSLog(@"resigning first responder"); 

này sẽ kiểm tra để xem nếu chức năng này thậm chí còn bị gọi là

5

Cố định câu trả lời KingOfBliss của:

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text 
{  
    if (textView == messageInput) { 
     if ([text isEqualToString:@"\n"]) { 
      [textView resignFirstResponder]; 
      return NO; 
     } 
    } 
    return YES; 
} 
0
if ([text isEqualToString:@"\n"]) { 
     [textView resignFirstResponder]; 
     return NO; 
    } 

là đủ trong trường hợp của tôi.

+0

Mặc dù đoạn mã này có thể giải quyết được câu hỏi, [bao gồm cả giải thích] (http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers) thực sự giúp cải thiện chất lượng bài đăng của bạn. Hãy nhớ rằng bạn đang trả lời câu hỏi cho người đọc trong tương lai và những người đó có thể không biết lý do cho đề xuất mã của bạn. – msrd0

Các vấn đề liên quan