Disable return key in UITextView

后端 未结 5 1103
小鲜肉
小鲜肉 2021-02-06 23:55

I am trying to disable the return key found when typing in a UITextView. I want the text to have no page indents like found in a UITextField. This is t

相关标签:
5条回答
  • 2021-02-07 00:29

    Try to use like this..

    - (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
    
        if([text isEqualToString:@"\n"])
        {
            [textView resignFirstResponder];
            return NO;
        }
    
        return YES;
    }
    
    0 讨论(0)
  • 2021-02-07 00:31

    Another solution without magic hardcoded strings will be:

    - (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:    (NSString *)text {
        if( [text rangeOfCharacterFromSet:[NSCharacterSet newlineCharacterSet]].location == NSNotFound ) {
            return YES;
        }     
    
        return NO;
    }
    
    0 讨论(0)
  • 2021-02-07 00:33

    In Swift 3+ add:

    func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
        guard text.rangeOfCharacter(from: CharacterSet.newlines) == nil else {
            // textView.resignFirstResponder() // uncomment this to close the keyboard when return key is pressed
            return false
        }
    
        return true
    }
    

    Don't forget to add textView's delegate in order for this to be called

    0 讨论(0)
  • 2021-02-07 00:35

    why dont you change UITextView return key type like this?

    enter image description here

    0 讨论(0)
  • 2021-02-07 00:37

    I know this is late reply but this code is perfect working for me. This will disable return key initially until type any character.

    textfield.enablesReturnKeyAutomatically = YES;
    

    By Interface Builder set this property,

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