Відповіді:
Спочатку потрібно відповідати UITextFieldDelegate
Протоколу у файлі заголовка View / ViewController таким чином:
@interface YourViewController : UIViewController <UITextFieldDelegate>
Потім у свій .m файл потрібно реалізувати такий UITextFieldDelegate
метод протоколу:
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
[textField resignFirstResponder];
return YES;
}
[textField resignFirstResponder];
гарантує, що клавіатура відхилена.
Переконайтеся, що ви встановили свій перегляд / viewcontroller як делегат UITextField після того, як ви введете текстове поле в .m:
yourTextField = [[UITextField alloc] initWithFrame:yourFrame];
//....
//....
//Setting the textField's properties
//....
//The next line is important!!
yourTextField.delegate = self; //self references the viewcontroller or view your textField is on
Повне обговорення цієї теми див. У розділі Керування клавіатурою .
Ваші UITextFields повинні мати об’єкт-делегат (UITextFieldDelegate). Використовуйте такий код у своєму делегаті, щоб зникнути з клавіатури:
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
}
Має працювати поки що ...
Взяв у мене пару випробувань, був той самий випуск, це спрацювало для мене:
Перевірте написання на -
(BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
Я виправив шахту на, textField
замість великої textfield
літери "F" ... і бінго !! це спрацювало..
Після натискання клавіші повернення зателефонуйте:
[uitextfield resignFirstResponder];
Після зовсім небагато часу, коли вишукуєте щось, що має сенс, це те, що я зібрав, і це спрацювало як шарм.
.h
//
// ViewController.h
// demoKeyboardScrolling
//
// Created by Chris Cantley on 11/14/13.
// Copyright (c) 2013 Chris Cantley. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController <UITextFieldDelegate>
// Connect your text field to this the below property.
@property (weak, nonatomic) IBOutlet UITextField *theTextField;
@end
.m
//
// ViewController.m
// demoKeyboardScrolling
//
// Created by Chris Cantley on 11/14/13.
// Copyright (c) 2013 Chris Cantley. All rights reserved.
//
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
// _theTextField is the name of the parameter designated in the .h file.
_theTextField.returnKeyType = UIReturnKeyDone;
[_theTextField setDelegate:self];
}
// This part is more dynamic as it closes the keyboard regardless of what text field
// is being used when pressing return.
// You might want to control every single text field separately but that isn't
// what this code do.
-(void)textFieldShouldReturn:(UITextField *)textField
{
[textField resignFirstResponder];
}
@end
Сподіваюся, це допомагає!
Встановіть Делегат UITextField у свій ViewController, додайте референтну розетку між власником файлу та UITextField, а потім застосуйте цей метод:
-(BOOL)textFieldShouldReturn:(UITextField *)textField
{
if (textField == yourTextField)
{
[textField resignFirstResponder];
}
return NO;
}
Додайте це замість попередньо визначеного класу
class ViewController: UIViewController, UITextFieldDelegate {
Щоб видалити клавіатуру, натиснувши її за межами клавіатури
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
self.view.endEditing(true)
}
і видалити клавіатуру при натисканні клавіші Enter
додати цей рядок у viewDidLoad ()
inputField - назва використовуваного текстового поля.
self.inputField.delegate = self
і додайте цю функцію
func textFieldShouldReturn(textField: UITextField) -> Bool {
textField.resignFirstResponder()
return true
}
Швидкий 2:
це те, що робиться для кожної справи!
закрийте клавіатуру Done
кнопкою або Touch outSide
, Next
щоб перейти до наступного вводу.
Перша зміна TextFiled Return Key
To Next
в StoryBoard.
override func viewDidLoad() {
txtBillIdentifier.delegate = self
txtBillIdentifier.tag = 1
txtPayIdentifier.delegate = self
txtPayIdentifier.tag = 2
let tap = UITapGestureRecognizer(target: self, action: "onTouchGesture")
self.view.addGestureRecognizer(tap)
}
func textFieldShouldReturn(textField: UITextField) -> Bool {
if(textField.returnKeyType == UIReturnKeyType.Default) {
if let next = textField.superview?.viewWithTag(textField.tag+1) as? UITextField {
next.becomeFirstResponder()
return false
}
}
textField.resignFirstResponder()
return false
}
func onTouchGesture(){
self.view.endEditing(true)
}
швидко ви повинні делегувати UITextfieldDelegate , важливо не забувати його, у представленні viewController, як:
class MyViewController: UITextfieldDelegate{
mytextfield.delegate = self
func textFieldShouldReturn(textField: UITextField) -> Bool {
textField.resignFirstResponder()
}
}
Ви можете додати IBAction до uiTextField (подія виведення "Did End on Exit"), і IBAction може іменувати hidKeyboard,
-(IBAction)hideKeyboard:(id)sender
{
[uitextfield resignFirstResponder];
}
Крім того, ви можете застосувати його до інших текстових полів або кнопок, наприклад, ви можете додати до перегляду приховану кнопку, натиснувши її, щоб приховати клавіатуру.
Ви можете спробувати цей підклас UITextfield, який ви можете встановити умовою, щоб текст динамічно змінював UIReturnKey:
https://github.com/codeinteractiveapps/OBReturnKeyTextField