Отключить ключ возврата в UITextView

Я пытаюсь отключить ключ возврата, найденный при вводе в UITextView. Я хочу, чтобы в тексте не было отступов страницы, например, в UITextField. Это код, который у меня есть до сих пор:

- (BOOL)textView:(UITextView *)aTextView shouldChangeTextInRange:(NSRange)aRange replacementText:(NSString*)aText
{
if ([aTextView.text isEqualToString:@"\r\n"]) {
    return NO;
}

Есть идеи?

Ответы

Ответ 1

Попробуйте использовать вот так.

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

    if([text isEqualToString:@"\n"])
    {
        [textView resignFirstResponder];
        return NO;
    }

    return YES;
}

Ответ 2

Другим решением без магических жестко заданных строк будет:

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:    (NSString *)text {
    if( [text rangeOfCharacterFromSet:[NSCharacterSet newlineCharacterSet]].location == NSNotFound ) {
        return YES;
    }     

    return NO;
}

Ответ 3

В Swift 3+ добавьте:

guard text.rangeOfCharacter(from: CharacterSet.newlines) == nil else {
    return false
}

вверху func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) → Bool

Ответ 4

Я знаю, что это конец ответа, но этот код отлично работает для меня. Сначала будет отключен ключ возврата, пока не будет введен какой-либо символ.

textfield.enablesReturnKeyAutomatically = YES;

Посредством Interface Builder установите это свойство,
enter image description here

Ответ 5

почему вы не изменяете UITextView ключа возврата UITextView как это?

enter image description here

Ответ 6

Вы можете просто управлять свойством:

 textfield.enablesReturnKeyAutomatically = NO;