আমি যখন কোনও ইউআইটিেক্সটফিল্ডে রিটার্ন কী টিপবো তখন কী-বোর্ড কীভাবে আড়াল করবেন?


148

পাঠ্যক্ষেত্রে ক্লিক করা কীবোর্ডটি উপস্থিত হয় appear ব্যবহারকারীর রিটার্ন কীটি চাপলে আমি কীভাবে এটি আড়াল করব?


13
স্ট্যাক ওভারফ্লো সম্পর্কে দুর্দান্ত জিনিসটি হ'ল অনেক প্রশ্নের উত্তর ইতিমধ্যে দেওয়া হয়েছে, বিশেষত সাধারণ প্রশ্নগুলি। অতএব, দয়া করে জিজ্ঞাসার আগে, প্রথম উত্তরগুলি সন্ধান করুন। দেখ, এটা সহজ আছে: stackoverflow.com/search?q=iphone+hide+keyboard
Felixyz

এই UITextfield একটি উপশ্রেণী যে পরিবর্তনশীল টেক্সট / পংক্তি শর্ত অনুযায়ী UIReturnKey পরিবর্তন হল: github.com/codeinteractiveapps/OBReturnKeyTextField
CodeInteractive

উত্তর:


286

প্রথমে আপনার ফাইলটি ইউআইটিেক্সটফিল্ডের জন্য প্রতিনিধি করুন

@interface MYLoginViewController () <UITextFieldDelegate>

@end

তারপরে আপনার কোডটিতে এই পদ্ধতিটি যুক্ত করুন।

- (BOOL)textFieldShouldReturn:(UITextField *)textField {        
    [textField resignFirstResponder];
    return YES;
}

যোগ করুন self.textField.delegate = self;


1
কৌতূহলী, <UITextFieldDelegate> কেন প্রয়োজনীয় নয়? সাধারণত আপনি এই ক্ষেত্রে একটি সতর্কতা দেখতে পাবেন।
পিক্সেলফ্রেইক

7
যদি আপনি ইন্টারফেস বিল্ডার ব্যবহার করে আপনার ফাইলের প্রতিনিধি করে থাকেন তবে .U ফাইলে <UITextFieldDelegate> প্রয়োজন হয় না ..
সৌরভ

1
.h ফাইলে <UITextFieldDelegate> যুক্ত করে ভিউডিডলড [আপনার টেক্সটফিল্ড সেটডেলিগেট: স্ব]] তে প্রতিনিধি সেট করুন; এটি সম্পূর্ণ হবে!
উমিট কেয়া

@ সৌরভ স্টোরিবোর্ড ভিসি তৈরির জন্য এত বিশেষ কী?
পল ব্রেকউজেনস্কি

62

ইন viewDidLoadঘোষণা করে

[yourTextField setDelegate:self];

তারপরে, প্রতিনিধি পদ্ধতির ওভাররাইড অন্তর্ভুক্ত করুন:

-(BOOL)textFieldShouldReturn:(UITextField *)textField
{
    [textField resignFirstResponder];
    return YES;
}

6
setDelegate:অনুস্মারকটির জন্য +1 । অবশ্যই ভুলে গিয়েছিল এবং কোড আগে কাজ করে না।
পাইপচেস্টার

2
এটি আপনার পাঠ্যফিল্ডের পরিবর্তে পাঠ্য ফিল্ড হওয়া উচিত নয়?
ক্লাইভ জেফারিজ

বলার একটি উপায় যা আপনার পাঠ্যফিল্ডের প্রতিনিধি হিসাবে ঘোষণা করুন
অস্কার

1
<UITextFieldDelegate> .h ফাইলে থাকা উচিত, অন্যথায় সতর্কতা উপস্থিত হবে!
উমিট কেয়া

22

এই ব্যবহার করে দেখুন সুইফট ,

পদক্ষেপ 1: আপনার নিজের হিসাবে প্রতিনিধি সেট করুনtextField

textField.delegate = self

পদক্ষেপ 2: আপনার শ্রেণীর ঘোষণার নীচে এই UITextFieldDelegate যুক্ত করুন,

extension YourClassName: UITextFieldDelegate {
    func textFieldShouldReturn(textField: UITextField) -> Bool {
         textField.resignFirstResponder()
        return true
    }
}

14

দ্রুত পদক্ষেপে এটি করুন:
প্রথমে আপনার ViewControllerপ্রয়োগের UITextFieldDelegate ক্ষেত্রে যেমন।

class MyViewController: UIViewController, UITextFieldDelegate {
....
}

এখন কোনও প্রতিনিধি যুক্ত করুন TextFieldযাতে আপনি viewDidLoadনীচের মতো পদ্ধতিতে যেমন রিটার্নটি টেপ করা হয় বা যেখানে আপনি এটি শুরু করছেন সেখানে কী-বোর্ডটি বরখাস্ত করতে চান । যেমন যেমন

override func viewDidLoad() {

    super.viewDidLoad()   
    myTextField.delegate = self
}

এবার এই পদ্ধতিটি যুক্ত করুন।

func textFieldShouldReturn(textField: UITextField) -> Bool {

    textField.resignFirstResponder()
    return true
}

1
আপনি যদি আইবিতে প্রতিনিধি স্থাপন করেন তবে দ্বিতীয় পদক্ষেপটি নেসেসারি নয়।
hris.to

প্রদর্শিত হবে (সুইফটের বর্তমান সংস্করণগুলিতে) "টেক্সটফিল্ড:" এর আগে আন্ডারস্কোর হওয়া উচিত
ব্রাইস

2

এটা চেষ্টা কর,

[textField setDelegate: self];

তারপরে, টেক্সটফিল্ড প্রতিনিধি পদ্ধতিতে

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    [textField resignFirstResponder];
    return YES;
}

এটি করার জন্য এটি সেরা অনুশীলন নয়।
ওরফএলরেইস

ইন্টারফেস সংজ্ঞাতে UITextFieldDelegate প্রয়োজন।
অ্যালপ আল্টুনেল

@ অ্যালআল্টুনেল: মন্তব্যের জন্য ধন্যবাদ, এটি 4 বছর আগে ছিল।
ভিনিষ টিপি

1

এই পদ্ধতিতে ডেলিগেট UITextFieldএবং ওভার রাইড, textFieldShouldReturnপদ্ধতি সেট করুন , কেবল দুটি লাইন লিখুন:

[textField resignFirstResponder];
return YES;

এটাই. কোড লেখার আগে একটি প্রতিনিধি নির্ধারণ করতে UITextFieldএবং বৈশিষ্ট্য উইন্ডো থেকে রিটার্ন কী টাইপ "সম্পন্ন" সেট করতে ভুলবেন না ((কমান্ড + শিফট + আই)।


1

আপনি "প্রাইমারি অ্যাকশন ট্রিগার্ড" (ইউআইটিেক্সটফিল্ডে ডান ক্লিক করুন) আইবিএક્શનের সাথে সংযুক্ত করতে পারেন এবং আপনি প্রথম উত্তরদাতা (প্রতিনিধি দল ছাড়া) পদত্যাগ করতে পারেন। উদাহরণ (সুইফ্ট 4):

@IBAction func textFieldPrimaryAction(_ sender: UITextField) {
    sender.resignFirstResponder()
    ...
}

স্টোরিবোর্ড ব্যবহার করে পছন্দের উপায়।
লল

1

সুইফট 4

UITextFieldভিউ কন্ট্রোলারের প্রতিনিধি সেট করুন field.delegate = selfএবং তারপরে:

extension ViewController: UITextFieldDelegate {
    func textFieldShouldReturn(_ textField: UITextField) -> Bool {
        // don't force `endEditing` if you want to be asked for resigning
        // also return real flow value, not strict, like: true / false
        return textField.endEditing(false)
    }
}

আপনি কীভাবে ব্যবহারকারীদের পরবর্তী পাঠ্য ক্ষেত্রটিতে শেষ ট্যাব এবং তারপরে পদত্যাগ না হওয়া পর্যন্ত রিটার্ন কী টিপলে পরবর্তী টেক্সট ক্ষেত্রে 'ট্যাব' করতে চান? সুইফটুআই-তেও।
শিখুন 2

@ শিখুন 2 কোড কোনও পরিচালক তৈরি করুন, পাঠ্যক্ষেত্র এবং চেইন সংগ্রহ করুন, শেষটি শেষ ফাংশনটিকে ট্রিগার করবে।
ডিম্পিয়াक्स

1

আপনি যদি কোনও বিশেষ কীবোর্ড ব্যবহারের জন্য কীবোর্ডটি [self.view resignFirstResponder]; আড়াল করতে চান তবে আপনি যদি ব্যবহারের ব্যবহার থেকে কোনও কীবোর্ডটি আড়াল করতে চান[self.view endEditing:true];



0

ঠিক আছে, আমি মনে করি নবজাতকের জন্য কিছু বিভ্রান্তিকর হতে পারে। আমি মনে করি সঠিক উত্তরটি উপরের সমস্তটির একটি মিশ্রণ, কমপক্ষে সুইফট 4-এ।

হয় কোনও এক্সটেনশন তৈরি করুন বা ভিউকন্ট্রোলার ব্যবহার করুন যাতে আপনি এটি ব্যবহার করতে চান তবে ইউআইটিেক্সটফিল্ডডেলিগেটটি বাস্তবায়ন করতে ভুলবেন না। পুনঃব্যবহারযোগ্যতার জন্য আমি একটি এক্সটেনশনটি ব্যবহার করা আরও সহজ পেয়েছি:

extension UIViewController : UITextFieldDelegate {
    ...
}

তবে বিকল্পটিও কাজ করে:

class MyViewController: UIViewController {
    ...
}

ফিল্ড শিল্ড রিটার্ন পদ্ধতি পাঠ্য যুক্ত করুন (আপনার পূর্ববর্তী বিকল্পের উপর নির্ভর করে, হয় এক্সটেনশনে বা আপনার ভিউকন্ট্রোলারে)

func textFieldShouldReturn(_ textField: UITextField) -> Bool {
    return textField.endEditing(false)
}

আপনার ভিউডিডলড পদ্ধতিতে, পাঠ্যক্ষেত্রের প্রতিনিধিটিকে নিজেরাই সেট করুন

@IBOutlet weak var myTextField: UITextField!
...

override func viewDidLoad() {
    ..
    myTextField.delegte = self;
    ..
}

এটাই সব হওয়া উচিত। এখন, আপনি টিপুন returnযখন কল করা textFieldShouldReturnউচিত।


0

এই শ্রেণীর সংজ্ঞা দিন এবং তারপরে শ্রেণিটি ব্যবহারের জন্য আপনার পাঠ্য ক্ষেত্রটি সেট করুন এবং রিটার্নটি স্বয়ংক্রিয়ভাবে চাপলে এই গোপন কীবোর্ডটি স্বয়ংক্রিয়ভাবে সক্রিয় হয়।

class TextFieldWithReturn: UITextField, UITextFieldDelegate
{

    required init?(coder aDecoder: NSCoder) 
    {
        super.init(coder: aDecoder)
        self.delegate = self
    }

    func textFieldShouldReturn(_ textField: UITextField) -> Bool
    {
        textField.resignFirstResponder()
        return true
    }

}

তারপরে স্টোরিবোর্ডে আপনাকে যা করতে হবে তা ক্লাসটি ব্যবহারের জন্য ক্ষেত্রগুলি সেট করা আছে:

এখানে চিত্র বর্ণনা লিখুন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.