UITextView resign first responder on 'Done'

前端 未结 2 1767
鱼传尺愫
鱼传尺愫 2021-02-05 17:45

I have been searching around the web for about an hour now, and cannot find any code to help me with this.

I have a UITextView that I need to resign first r

相关标签:
2条回答
  • 2021-02-05 18:03

    Implement the shouldChangeTextInRange: delegate method.

    Use below approach and the solution work only with @"\n" (new line character).

    //In you *.h file make sure you add
    @interface v1ViewController : UIViewController <UITextViewDelegate>
    
    - (void)viewDidLoad
    {
        [super viewDidLoad];
        // Do any additional setup after loading the view, typically from a nib.
    
        myTextField.delegate = self;
    }
    
        - (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range 
              replacementText:(NSString *)text
            {
    
                if ([text isEqualToString:@"\n"]) {
    
                    [textView resignFirstResponder];
                    // Return FALSE so that the final '\n' character doesn't get added
                    return NO;
                }
                // For any other character return TRUE so that the text gets added to the view
                return YES;
        }
    
    0 讨论(0)
  • 2021-02-05 18:09

    You can use the delegate method

    - (void)textViewDidEndEditing:(UITextView *)textView { 
        [textView resignFirstResponder];
    }
    

    You have to set your controller as the delegate for the TextView. For more methods you can have a look here: http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UITextViewDelegate_Protocol/Reference/UITextViewDelegate.html%23//apple_ref/doc/uid/TP40006897

    0 讨论(0)
提交回复
热议问题