আরও মার্জিত উপায় হ'ল ব্যবহারকারী যখন কীবোর্ডের ফ্রেমের বাইরে কোথাও ট্যাপ করেন।
প্রথমে আপনার ভিউকন্ট্রোলারের ভিউ ইউআইবিল্ডারের পরিচয় পরিদর্শকের "ইউআইসিএন্ট্রোল" শ্রেণিতে সেট করুন। ভিউকন্ট্রোলারের হেডার ফাইলে দৃশ্যটি নিয়ন্ত্রণ-টেনে আনুন এবং এটিকে ইভেন্টের সাথে টাচ আপ ইনসাইড হিসাবে একটি ক্রিয়া হিসাবে লিঙ্ক করুন, যেমন:
ViewController.h
-(IBAction)dismissKeyboardOnTap:(id)sender;
মূল ভিউকন্ট্রোলার ফাইলটিতে, ভিউকন্ট্রোলআরএম:
-(IBAction)dismissKeyboardOnTap:(id)sender
{
[[self view] endEditing:YES];
}
অনুরূপ কৌশল ব্যবহার করে আপনার ডাবল ট্যাপ বা দীর্ঘ স্পর্শের প্রয়োজন হতে পারে। আপনাকে আপনার ভিউকন্ট্রোলারটিকে ইউআইটিএক্সেক্সটভিউ ডেলিগেট হিসাবে সেট করতে এবং টেক্সটভিউটি ভিউকন্ট্রোলারের সাথে সংযুক্ত করতে হবে। এই পদ্ধতিটি ইউআইটিেক্সটভিউ এবং ইউআইটিেক্সটফিল্ড উভয়ের পক্ষে কাজ করে।
সূত্র: বিগ Nerd রাঞ্চ
সম্পাদনা: আমি আরও যুক্ত করতে চাই যে আপনি যদি ইউআইএসক্রোলভিউ ব্যবহার করেন তবে উপরের কৌশলটি ইন্টারফেস বিল্ডারের মাধ্যমে সহজে কাজ করতে পারে না। সেক্ষেত্রে আপনি একটি ইউআইজিস্টচারআর সনাক্তকারী ব্যবহার করতে পারেন এবং এর পরিবর্তে [[স্বদর্শন] সমাপ্তি: হ্যাঁ] পদ্ধতিটি কল করতে পারেন। একটি উদাহরণ হবে:
-(void)ViewDidLoad{
....
UITapGestureRecognizer *tapRec = [[UITapGestureRecognizer alloc]
initWithTarget:self action:@selector(tap:)];
[self.view addGestureRecognizer: tapRec];
....
}
-(void)tap:(UITapGestureRecognizer *)tapRec{
[[self view] endEditing: YES];
}
যখন ব্যবহারকারী কীবোর্ডের বাইরে ট্যাপ করে এবং কোনও প্রবেশ স্থান স্পর্শ না করে, কীবোর্ডটি বরখাস্ত হবে।