অনেক আকর্ষণীয় উত্তর। আমি সমাধানের জন্য বিভিন্ন পদ্ধতির সংকলন করতে চাই যা আমি একটি ইউআইটিএলভিউ দৃশ্যের সাথে সবচেয়ে উপযুক্ত বলে মনে করি (এটি আমি সাধারণত ব্যবহার করি): আমরা সাধারণত যা চাই তা মূলত দুটি পরিস্থিতিতে হ'ল পাঠ্য UI উপাদানগুলির বাইরে ট্যাপ করা, অথবা ইউআইটিএবলভিউকে উপরে / উপরে স্ক্রোল করার সময়। প্রথম দৃশ্যে আমরা সহজেই টেপগাস্টারআরকনাইজারের মাধ্যমে যুক্ত করতে পারি এবং দ্বিতীয়টি ইউআইএসক্রোলভিউ ডেেলিগেট স্ক্রোলভিউ উইলব্যাগিনড্র্যাগিং: পদ্ধতির মাধ্যমে। ব্যবসায়ের প্রথম ক্রম, কীবোর্ডটি লুকানোর পদ্ধতি:
/**
* Shortcut for resigning all responders and pull-back the keyboard
*/
-(void)hideKeyboard
{
//this convenience method on UITableView sends a nested message to all subviews, and they resign responders if they have hold of the keyboard
[self.tableView endEditing:YES];
}
এই পদ্ধতিটি ইউআইটিএবলভিউ ভিউ হায়ারার্কির মধ্যে সাবউভিউগুলির যে কোনও পাঠ্য ফিল্ড ইউআইকে পদত্যাগ করে, তাই প্রতিটি একক উপাদানকে স্বতন্ত্রভাবে পদত্যাগ করার চেয়ে আরও কার্যকর।
এর পরে আমরা বাইরের ট্যাপ অঙ্গভঙ্গির মাধ্যমে খারিজের যত্ন নিই:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
[self setupKeyboardDismissGestures];
}
- (void)setupKeyboardDismissGestures
{
// Example for a swipe gesture recognizer. it was not set-up since we use scrollViewDelegate for dissmin-on-swiping, but it could be useful to keep in mind for views that do not inherit from UIScrollView
// UISwipeGestureRecognizer *swipeUpGestureRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(hideKeyboard)];
// swipeUpGestureRecognizer.cancelsTouchesInView = NO;
// swipeUpGestureRecognizer.direction = UISwipeGestureRecognizerDirectionUp;
// [self.tableView addGestureRecognizer:swipeUpGestureRecognizer];
UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(hideKeyboard)];
//this prevents the gestureRecognizer to override other Taps, such as Cell Selection
tapGestureRecognizer.cancelsTouchesInView = NO;
[self.tableView addGestureRecognizer:tapGestureRecognizer];
}
টেপগাস্টারআরকনগাইজার.ক্যান্সেলস টাচসইনভিউকে NO তে নির্ধারণ করা হ'ল অঙ্গভঙ্গি সনাক্তকারীকে ইউআইটিএবলভিউয়ের স্বাভাবিক অভ্যন্তরীণ কাজগুলিকে ওভাররাইড করা থেকে বিরত রাখা (উদাহরণস্বরূপ, সেল নির্বাচনের সাথে হস্তক্ষেপ না করা)।
অবশেষে, ইউআইটিবেবল ভিউ-এর উপরে / নিচে স্ক্রোলিংয়ে কীবোর্ডটি আড়াল করার জন্য, আমাদের অবশ্যই ইউআইএসক্রলভিউ ডেলিগেট প্রোটোকল স্ক্রোলভিউ উইলব্যাগিনড্র্যাগিং: পদ্ধতিটি প্রয়োগ করতে হবে:
.h ফাইল
@interface MyViewController : UIViewController <UIScrollViewDelegate>
.m ফাইল
#pragma mark - UIScrollViewDelegate
-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
[self hideKeyboard];
}
আমি আসা করি এটা সাহায্য করবে! =)