जवाबों:
सबसे पहले आपको UITextFieldDelegate
अपने View / ViewController की हैडर फ़ाइल में इस तरह से प्रोटोकॉल के अनुरूप होना चाहिए :
@interface YourViewController : UIViewController <UITextFieldDelegate>
फिर अपनी .m फाइल में आपको निम्न UITextFieldDelegate
प्रोटोकॉल विधि को लागू करने की आवश्यकता है :
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
[textField resignFirstResponder];
return YES;
}
[textField resignFirstResponder];
सुनिश्चित करता है कि कीबोर्ड खारिज कर दिया गया है।
सुनिश्चित करें कि आप टेक्स्ट फ़ील्ड में प्रवेश करने के बाद अपना दृश्य / व्यूकंट्रोलर UITextField के प्रतिनिधि के रूप में सेट कर रहे हैं:
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];
}
अब तक काम करना चाहिए ...
काफी समय के बाद किसी चीज़ का शिकार करना, जो समझ में आता है, यह वही है जो मैंने एक साथ रखा और यह एक आकर्षण की तरह काम करता है।
ज
//
// 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
।म
//
// 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)
}
और जब एंटर दबाया जाए तो कीबोर्ड हटाने के लिए
इस लाइन को 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 को सौंपना चाहिए , यह महत्वपूर्ण है कि इसे मत भूलिए , व्यू कंट्रोलर में जैसे:
class MyViewController: UITextfieldDelegate{
mytextfield.delegate = self
func textFieldShouldReturn(textField: UITextField) -> Bool {
textField.resignFirstResponder()
}
}
आप uiTextField के लिए एक आईबीएशन जोड़ सकते हैं (रिटेंशन इवेंट "डिड एंड ऑन एक्जिट" है), और आईबीएएक्शन को HideKeyboard नाम दिया जा सकता है,
-(IBAction)hideKeyboard:(id)sender
{
[uitextfield resignFirstResponder];
}
इसके अलावा, आप इसे अन्य टेक्स्टफ़िल्ड या बटन पर भी लागू कर सकते हैं, उदाहरण के लिए, आप कीबोर्ड पर छिपाने के लिए इसे छिपा हुआ बटन जोड़ सकते हैं।
आप इस UITextfield उपवर्ग को आज़मा सकते हैं जिसे आप पाठ के लिए एक शर्त सेट कर सकते हैं कि वह UIReturnKey को गतिशील रूप से कैसे बदल सकता है:
https://github.com/codeinteractiveapps/OBReturnKeyTextField