Jawaban:
Pertama, Anda harus mengikuti UITextFieldDelegate
Protokol di file header View / ViewController Anda seperti ini:
@interface YourViewController : UIViewController <UITextFieldDelegate>
Kemudian di file .m Anda, Anda perlu menerapkan UITextFieldDelegate
metode protokol berikut :
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
[textField resignFirstResponder];
return YES;
}
[textField resignFirstResponder];
pastikan keyboard ditutup.
Pastikan Anda menyetel view / viewcontroller menjadi delegasi UITextField setelah Anda memasukkan textfield di .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
Implementasikan metode UITextFieldDelegate seperti ini:
- (BOOL)textFieldShouldReturn:(UITextField *)aTextField
{
[aTextField resignFirstResponder];
return YES;
}
Lihat Mengelola Keyboard untuk pembahasan lengkap tentang topik ini.
UITextFields Anda harus memiliki objek delegasi (UITextFieldDelegate). Gunakan kode berikut dalam delegasi Anda untuk menghilangkan keyboard:
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
}
Harus bekerja sejauh ini ...
Memberi saya beberapa percobaan, memiliki masalah yang sama, ini berhasil untuk saya:
Periksa ejaan Anda di -
(BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
Saya mengoreksi milik saya di textField
bukannya textfield
, capitalize "F" ... dan bingo !! berhasil ..
Saat tombol kembali ditekan, panggil:
[uitextfield resignFirstResponder];
Setelah cukup lama mencari sesuatu yang masuk akal, inilah yang saya kumpulkan dan itu bekerja seperti pesona.
.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
Semoga ini membantu!
Setel Delegasi UITextField ke ViewController Anda, tambahkan outlet referensi antara Pemilik File dan UITextField, lalu terapkan metode ini:
-(BOOL)textFieldShouldReturn:(UITextField *)textField
{
if (textField == yourTextField)
{
[textField resignFirstResponder];
}
return NO;
}
Tambahkan ini sebagai ganti kelas yang telah ditentukan sebelumnya
class ViewController: UIViewController, UITextFieldDelegate {
Untuk menghapus keyboard saat diklik di luar keyboard
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
self.view.endEditing(true)
}
dan untuk melepas keyboard saat menekan enter
tambahkan baris ini di viewDidLoad ()
inputField adalah nama textField yang digunakan.
self.inputField.delegate = self
dan tambahkan fungsi ini
func textFieldShouldReturn(textField: UITextField) -> Bool {
textField.resignFirstResponder()
return true
}
Cepat 2:
inilah yang dilakukan untuk melakukan segala sesuatu!
tutup keyboard dengan Done
tombol atau Touch outSide
, Next
untuk ke masukan berikutnya.
Pertama Ubah TextFiled Return Key
Ke Next
di 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)
}
secepatnya Anda harus mendelegasikan UITextfieldDelegate , yang penting jangan lupa, di viewController, seperti:
class MyViewController: UITextfieldDelegate{
mytextfield.delegate = self
func textFieldShouldReturn(textField: UITextField) -> Bool {
textField.resignFirstResponder()
}
}
Anda dapat menambahkan IBAction ke uiTextField (acara rilisnya adalah "Did End On Exit"), dan IBAction mungkin bernama hideKeyboard,
-(IBAction)hideKeyboard:(id)sender
{
[uitextfield resignFirstResponder];
}
juga, Anda dapat menerapkannya ke bidang teks atau tombol lain, misalnya, Anda dapat menambahkan tombol tersembunyi ke tampilan, saat Anda mengkliknya untuk menyembunyikan keyboard.
Anda dapat mencoba subclass UITextfield ini yang dapat Anda setel kondisi teks untuk mengubah UIReturnKey secara dinamis:
https://github.com/codeinteractiveapps/OBReturnKeyTextField