Отключить ключ возврата в 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 установите это свойство,
Ответ 5
почему вы не изменяете UITextView
ключа возврата UITextView
как это?
Ответ 6
Вы можете просто управлять свойством:
textfield.enablesReturnKeyAutomatically = NO;