Frage Textview-Tastatur nicht resigniert, wenn ich done iOS drücke


Ich habe eine Textansicht und wenn ich done drücke, startet die Textansicht eine neue Zeile.

Ich habe diese Methoden implementiert und alle Delegierten hinzugefügt

@property (nonatomic, strong) IBOutlet UITextView *textField;

-(void)textViewDidEndEditing:(UITextView *)textView //was UITextField
{
    [self.textField resignFirstResponder];
}

- (BOOL)textFieldShouldReturn:(UITextView *)textField{

    [textField resignFirstResponder];
    return YES;

}

Ich habe die Tastatur Return-Taste im Attribute Inspector getan. Ich möchte die Done-Taste auf der Tastatur, um First Responder zurücktreten, es scheint nicht zu funktionieren.

- (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;
}

Wie kann ich beide Anweisungen hinzufügen, damit sie ohne den Fehler funktionieren?


5
2017-08-03 13:12


Ursprung


Antworten:


Delegat hinzufügen UITextViewDelegate 

@property (nonatomic, strong) IBOutlet UITextView *textField;

Schreibe diese Zeile in viewDidLoad

textField.delegte = self;

// Fügen Sie unterhalb der Delegate-Methode hinzu [Code ist in Swift. Finden Sie obj-c-Methode und schreiben Sie Logik, wie ich habe]

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

    if([text isEqualToString:@"\n"]) {
        [textView resignFirstResponder];
        return NO;
    }
    if (textField.text.length >= 300) {
        return NO;
    }
    return YES;
}

3
2017-08-03 13:21



Gehe zu deinem Storyboard und wähle dann dein Textfeld aus, setze den Delegaten und bestätige das UITextFieldDelegate-Protokoll in deiner .h-Datei

Ich hoffe es hilft.


2
2017-08-03 13:20