Antworten:
Zuerst müssen Sie das UITextFieldDelegate
Protokoll in der Header-Datei Ihres View / ViewController wie folgt anpassen:
@interface YourViewController : UIViewController <UITextFieldDelegate>
Dann müssen Sie in Ihrer .m-Datei die folgende UITextFieldDelegate
Protokollmethode implementieren :
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
[textField resignFirstResponder];
return YES;
}
[textField resignFirstResponder];
stellt sicher, dass die Tastatur geschlossen ist.
Stellen Sie sicher, dass Sie Ihre Ansicht / Ihren Ansichtscontroller als Delegierten von UITextField festlegen, nachdem Sie das Textfeld in .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
Implementieren Sie die UITextFieldDelegate-Methode wie folgt:
- (BOOL)textFieldShouldReturn:(UITextField *)aTextField
{
[aTextField resignFirstResponder];
return YES;
}
Eine vollständige Diskussion zu diesem Thema finden Sie unter Verwalten der Tastatur .
Ihre UITextFields sollten ein Delegatenobjekt (UITextFieldDelegate) haben. Verwenden Sie den folgenden Code in Ihrem Delegaten, um die Tastatur verschwinden zu lassen:
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
}
Sollte soweit funktionieren ...
Ich habe ein paar Versuche gemacht, hatte das gleiche Problem, das hat bei mir funktioniert:
Überprüfen Sie Ihre Rechtschreibung bei -
(BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
Ich habe meine korrigiert, textField
anstatt textfield
"F" groß zu schreiben ... und Bingo !! es funktionierte..
Wenn die Eingabetaste gedrückt wird, rufen Sie an:
[uitextfield resignFirstResponder];
Nach einiger Zeit habe ich etwas Sinnvolles gesucht, das habe ich zusammengestellt und es hat wie ein Zauber funktioniert.
.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
Hoffe das hilft!
Legen Sie den Delegaten des UITextField für Ihren ViewController fest, fügen Sie einen Referenzierungsausgang zwischen dem Eigentümer der Datei und dem UITextField hinzu und implementieren Sie diese Methode:
-(BOOL)textFieldShouldReturn:(UITextField *)textField
{
if (textField == yourTextField)
{
[textField resignFirstResponder];
}
return NO;
}
Fügen Sie dies anstelle der vordefinierten Klasse hinzu
class ViewController: UIViewController, UITextFieldDelegate {
So entfernen Sie die Tastatur, wenn Sie außerhalb der Tastatur klicken
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
self.view.endEditing(true)
}
und um die Tastatur zu entfernen, wenn Sie die Eingabetaste drücken
füge diese Zeile in viewDidLoad () hinzu
inputField ist der Name des verwendeten textField.
self.inputField.delegate = self
und fügen Sie diese Funktion hinzu
func textFieldShouldReturn(textField: UITextField) -> Bool {
textField.resignFirstResponder()
return true
}
Swift 2:
Das ist es, was getan wird, um alles zu tun!
Schließen Sie die Tastatur mit der Done
Taste oder Touch outSide
, Next
um zur nächsten Eingabe zu gelangen.
Ändern Sie zuerst TextFiled Return Key
To Next
in 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)
}
in schnell sollten Sie UITextfieldDelegate delegieren , es ist wichtig, es nicht zu vergessen, im viewController, wie:
class MyViewController: UITextfieldDelegate{
mytextfield.delegate = self
func textFieldShouldReturn(textField: UITextField) -> Bool {
textField.resignFirstResponder()
}
}
Sie können dem uiTextField eine IBAction hinzufügen (das Releationsereignis lautet "Did End On Exit"), und die IBAction kann hideKeyboard heißen.
-(IBAction)hideKeyboard:(id)sender
{
[uitextfield resignFirstResponder];
}
Sie können es auch auf die anderen Textfelder oder Schaltflächen anwenden. Sie können der Ansicht beispielsweise eine ausgeblendete Schaltfläche hinzufügen, wenn Sie darauf klicken, um die Tastatur auszublenden.
Sie können diese UITextfield-Unterklasse ausprobieren, mit der Sie eine Bedingung für den Text festlegen können, um den UIReturnKey dynamisch zu ändern:
https://github.com/codeinteractiveapps/OBReturnKeyTextField