В библиотеке IB введение говорит нам, что при нажатии клавиши return kbd> клавиатура для UITextView
исчезнет. Но на самом деле ключ return kbd> может действовать только как '\ n'.
Я могу добавить кнопку и использовать [txtView resignFirstResponder]
, чтобы скрыть клавиатуру.
Но есть ли способ добавить действие для клавиши return kbd> на клавиатуре, чтобы мне не нужно было добавлять UIButton
?
Попробуйте это:
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text{
if ([text isEqualToString:@"\n"]) {
[self.view endEditing:YES];
}
return YES;
}
Я нашел ответ от Хосебамы , чтобы быть наиболее полным и чистым ответом, доступным в этой теме.
Ниже приведен синтаксис Swift 4 для него:
func textView(_ textView: UITextView, shouldChangeTextIn _: NSRange, replacementText text: String) -> Bool {
let resultRange = text.rangeOfCharacter(from: CharacterSet.newlines, options: .backwards)
if text.count == 1 && resultRange != nil {
textView.resignFirstResponder()
// Do any additional stuff here
return false
}
return true
}
Просто решили эту проблему по-другому.
и перетащить кнопку в файл viewController.h
и создать действие (Отправленное событие: Touch Up Inside) как:
(IBAction)ExitKeyboard:(id)sender;
В ViewController.m
должно выглядеть так:
(IBAction)ExitKeyboard:(id)sender {
[self.view endEditing:TRUE];
}