Я создал UITextField
программно, создав UITextField
свойство a для viewController. Мне нужно убрать клавиатуру с возвратом и касанием экрана. Мне удалось отключить касание экрана, но нажатие возврата не работает.
Я видел, как это сделать с помощью раскадровки, а также путем UITextField
непосредственного выделения и инициализации объекта без создания его как свойства. Можно сделать?
.час
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController <UITextFieldDelegate>
@property (strong, atomic) UITextField *username;
@end
.m
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
self.view.backgroundColor = [UIColor blueColor];
self.username = [[UITextField alloc] initWithFrame:CGRectMake(100, 25, 80, 20)];
self.username.placeholder = @"Enter your username";
self.username.backgroundColor = [UIColor whiteColor];
self.username.borderStyle = UITextBorderStyleRoundedRect;
if (self.username.placeholder != nil) {
self.username.clearsOnBeginEditing = NO;
}
_username.delegate = self;
[self.view addSubview:self.username];
[_username resignFirstResponder];
}
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
NSLog(@"touchesBegan:withEvent:");
[self.view endEditing:YES];
[super touchesBegan:touches withEvent:event];
}
@end
ios
keyboard
uitextfield
noobsmcgoobs
источник
источник
Ответы:
Самый простой способ - подключить делегата
UITextField
к self (self.mytestField.delegate = self
) и закрыть клавиатуру в методе,textFieldShouldReturn
используя[textField resignFirstResponder];
Еще один способ закрыть клавиатуру:
Укажите место,
[self.view endEditing:YES];
где вы хотите закрыть клавиатуру (событие кнопки, событие касания и т. Д.).источник
Добавьте такой метод делегата
UITextField
:И установите, а
textField.delegate = self;
затем добавьте два метода делегатаUITextField
источник
@interface MyController : UIViewController <UITextFieldDelegate>
// Скрыть keyBoard, коснувшись фона в поле зрения
источник
просто используйте это быстро, чтобы закрыть клавиатуру:
Swift 3
источник
UIApplication.shared.sendAction(#selector(UIResponder.resignFirstResponder), to: nil, from: nil, for: nil)
SWIFT 4:
или
Установите делегата текстового поля на текущий контроллер просмотра, а затем:
Цель-C:
или
Установите делегата текстового поля на текущий контроллер просмотра, а затем:
источник
В делегате приложения вы можете написать
таким образом можно не писать слишком много кода.
источник
Постарайтесь понять, что такое первый респондент в иерархии представлений iOS. Когда ваше текстовое поле становится активным (или первым респондентом), когда вы касаетесь его (или передаете ему сообщение
becomeFirstResponder
программно), оно представляет клавиатуру. Итак, чтобы удалить ваше текстовое поле из числа первого респондента, вы должны передать ему сообщениеresignFirstResponder
.А чтобы скрыть клавиатуру на кнопке возврата, вы должны реализовать метод делегата
textFieldShouldReturn:
и передатьresignFirstResponder
сообщение.источник
Вот что я использую в своем коде. Работает как часы!
В yourviewcontroller.h добавьте:
@property (nonatomic) UITapGestureRecognizer *tapRecognizer;
Теперь в файле .m добавьте это в свою функцию ViewDidLoad:
Также добавьте эту функцию в файл .m:
источник
Чтобы закрыть клавиатуру после того, как клавиатура выскочила, есть 2 случая :
когда UITextField находится внутри UIScrollView
когда UITextField находится за пределами UIScrollView
2. когда UITextField находится за пределами UIScrollView, переопределите метод в вашем подклассе UIViewController
вы также должны добавить делегата для всех UITextView
чтобы создать IBAction, нажмите ctrl + щелкните UITapGesture и перетащите его в файл .h контроллера просмотра.
Здесь я назвал tappedEvent своим именем действия
Вышеуказанная информация была взята из следующей ссылки, пожалуйста, обратитесь за дополнительной информацией или свяжитесь со мной, если вы не понимаете вышеуказанные данные.
http://samwize.com/2014/03/27/dismiss-keyboard-when-tap-outside-a-uitextfield-slash-uitextview/
источник
Для группы
UITextView
s внутри aViewController
:Swift 3.0
Цель-C
источник
Я знаю, что на этот вопрос ответили другие, но я нашел другую статью, в которой также не рассказывалось о фоновых событиях - tableview или scrollview.
http://samwize.com/2014/03/27/dismiss-keyboard-when-tap-outside-a-uitextfield-slash-uitextview/
источник
Поскольку теги говорят только о iOS, я опубликую ответ для Swift 1.2 и iOs 8.4, добавьте их в свой класс быстрого управления представлением:
Также не забудьте добавить UITextFieldDelegate в объявление класса и установить для делегата текстовых полей значение self (представление).
источник
В Swift 3
ИЛИ
источник
Итак, вот что я сделал, чтобы он исчез после касания фона или возврата. Мне пришлось добавить делегат = self в viewDidLoad, а затем также методы делегата в файлы .m.
источник
Просто используйте это в Objective-C, чтобы закрыть клавиатуру:
источник
Сначала вам нужно добавить удаление текстового поля в файл .h. если не объявить
(BOOL)textFieldShouldReturn:(UITextField *)textField
этот метод не вызываемым. поэтому сначала добавьте делегата и напишите код скрытия клавиатуры в этот метод.Попробуй это..
источник
Добавить делегата: UITextFieldDelegate
а затем добавьте этот метод делегата
// Это должно работать отлично
источник
когда вы используете более одного текстового поля на экране. С помощью этого метода вам не нужно каждый раз упоминать текстовое поле, например
источник
Swift 2:
это то, что сделал, чтобы сделать все!
закрыть клавиатуру с помощью
Done
кнопки илиTouch outSide
,Next
чтобы перейти к следующему вводу.Первое изменение TextFiled
Return Key
ЧтобыNext
в раскадровке.источник
Если вы не знаете текущий контроллер представления или текстовое представление, вы можете использовать Responder Chain:
источник
для быстрых 3-4 я исправил как
просто скопируйте вставку в любом месте класса. Это решение просто работает, если вы хотите, чтобы все UItextfield работали одинаково, или если у вас есть только одно!
источник