আমি ভাবছি কীভাবে কীবোর্ডটি অদৃশ্য করা যায় যখন ব্যবহারকারী এ এর বাইরে স্পর্শ করে UITextField
।
আমি ভাবছি কীভাবে কীবোর্ডটি অদৃশ্য করা যায় যখন ব্যবহারকারী এ এর বাইরে স্পর্শ করে UITextField
।
উত্তর:
আপনাকে একটি যুক্ত করতে UITapGestureRecogniser
হবে এবং এটিকে ভিউতে অর্পণ করতে হবে, এবং তারপরে UITextField
নির্বাচকটির উপর প্রথমে পদত্যাগকারীকে কল করুন।
কোড:
ভিউডিডলডে
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dismissKeyboard)];
[self.view addGestureRecognizer:tap];
বরখাস্ত কীবোর্ডে:
-(void)dismissKeyboard
{
[aTextField resignFirstResponder];
}
( aTextField
পাঠ্যক্ষেত্রটি কী-বোর্ডের জন্য দায়বদ্ধ)
সুইফট 3 সংস্করণটি দেখতে এমন দেখাচ্ছে
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(self.dismissKeyboard (_:)))
self.view.addGestureRecognizer(tapGesture)
বরখাস্ত কীবোর্ডের জন্য
func dismissKeyboard (_ sender: UITapGestureRecognizer) {
aTextField.resignFirstResponder()
}
[aTextField resignFirstResponder]
যেহেতু [self.view endEditing:YES];
এটি পাঠ্যের ক্ষেত্রে কোনও রেফারেন্সের প্রয়োজন হবে না এবং একাধিক পাঠ্যক্ষেত্রের জন্য কাজ করবে
[self.view addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget:self.view action:@selector(endEditing:)]];
[tap setCancelsTouchesInView:NO];
@ কিয়াওয়ের উত্তর অনুসারে যোগ করেছি ; আমার একটি সারণী সারি নির্বাচনের প্রতিক্রিয়া না জানিয়ে একটি সমস্যা ছিল। 5 বছর পরে, আমি আশা করি এটি অন্য কাউকে সাহায্য করবে।
self.view.addGestureRecognizer(UITapGestureRecognizer(target: self.view, action: #selector(UIView.endEditing(_:))))
আমি কয়েকটি উত্তর জড়ালাম।
একটি আইভার ব্যবহার করুন যা সময়কালে আরম্ভ হয় viewDidLoad:
UIGestureRecognizer *tapper;
- (void)viewDidLoad
{
[super viewDidLoad];
tapper = [[UITapGestureRecognizer alloc]
initWithTarget:self action:@selector(handleSingleTap:)];
tapper.cancelsTouchesInView = NO;
[self.view addGestureRecognizer:tapper];
}
বর্তমানে যা সম্পাদনা করছে তা খারিজ করুন:
- (void)handleSingleTap:(UITapGestureRecognizer *) sender
{
[self.view endEditing:YES];
}
এটি দেখুন, এটি করার সহজ উপায় এটি হবে,
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
[self.view endEditing:YES];// this will do the trick
}
অথবা
এই লাইব্রেরিটি স্ক্রোলবার অটো স্ক্রোলিং, কীবোর্ডটি আড়াল করার জন্য স্পেস ট্যাপ করে ইত্যাদি সহ পরিচালনা করবে ...
আমি দেখছি যে UITapGestureRecognizer
পদ্ধতিটি ব্যবহার করে কিছু লোকের সমস্যা হচ্ছে । আমার বিদ্যমান বোতামের ট্যাপ আচরণটি অক্ষত রেখেই আমি এই কার্যকারিতাটি সম্পাদন করার সবচেয়ে সহজ উপায়টি @ জেনসেন 2 কে এর উত্তরে কেবল একটি লাইন যুক্ত করছে:
[tap setCancelsTouchesInView:NO];
এটি আমার বিদ্যমান বোতামগুলিকে @ ডিমিত্রি সিত্নিকভের পদ্ধতি ব্যবহার না করেই এখনও কাজ করতে দেয়।
property
এখানে সে সম্পর্কে পড়ুন (অনুসন্ধান করুন CancelsTouchesInView
): ইউআইজিস্টেকররনগাইজার ক্লাস রেফারেন্স
আমি নিশ্চিত না যে এটি কীভাবে স্ক্রোলবারগুলির সাথে কাজ করবে, যেমন আমি দেখি কারও কারও সাথে সমস্যা ছিল তবে আশা করি অন্য কেউ আমার মতো একই দৃশ্যে চলে যেতে পারে।
UIImageView
যুক্ত করুন, [imageView setUserInteractionEnabled:NO];
এবং আপনি এটি "মাধ্যমে" ক্লিক করুন, যা এই পদ্ধতিটিকে কাজ করে।
আপনার ইন্টারফেস বিল্ডারে UIView
একটি উদাহরণ তৈরি করা UIControl
এবং তারপরে তাদের TouchUpInside
ইভেন্টটি dismissKeyboard
পদ্ধতির সাথে সংযুক্ত করা ভাল । এই IBAction
পদ্ধতিটি দেখতে পাবেন:
- (IBAction)dismissKeyboard:(id)sender {
[aTextBox resignFirstResponder];
}
UITapGestureRecognizer
ভিউয়ের ভিতরে বোতামে আলতো চাপ দিয়ে হস্তক্ষেপ করা)। প্রতিক্রিয়াশীল চেইনের সাথে কোনও touchesEnded
UIScrollView
সুইফট 4
UIViewController
এই এক্সটেনশন পদ্ধতিটি দিয়ে একবার সেটআপ করুন যেমন viewDidLoad
:
override func viewDidLoad() {
super.viewDidLoad()
self.setupHideKeyboardOnTap()
}
এবং টিপ দিয়ে এমনকি কীবোর্ডটি খারিজ করা হবে NavigationBar
।
import UIKit
extension UIViewController {
/// Call this once to dismiss open keyboards by tapping anywhere in the view controller
func setupHideKeyboardOnTap() {
self.view.addGestureRecognizer(self.endEditingRecognizer())
self.navigationController?.navigationBar.addGestureRecognizer(self.endEditingRecognizer())
}
/// Dismisses the keyboard from self.view
private func endEditingRecognizer() -> UIGestureRecognizer {
let tap = UITapGestureRecognizer(target: self.view, action: #selector(self.view.endEditing(_:)))
tap.cancelsTouchesInView = false
return tap
}
}
সুইফ্ট সংস্করণ, এটি অন্যান্য উপাদানের সাথে মিশ্রণে কাজ করে (যেমন একটি UIButton
বা অন্য UITextField
):
override func viewDidLoad() {
super.viewDidLoad()
let tapper = UITapGestureRecognizer(target: self, action:#selector(endEditing))
tapper.cancelsTouchesInView = false
view.addGestureRecognizer(tapper)
}
self
তার চেয়ে বেশি হওয়া উচিতself.view
canclesTouchesInView
ব্যবহার করার জন্য একটি সুবিধাজনক সম্পত্তি। ধন্যবাদ।
c#
। এফওয়াইআই সেমিকোলন সিনট্যাক্স-অনুমোদিত, এটি কেবল প্রয়োজনীয় নয়।
এটি সম্পর্কে কীভাবে: আমি জানি এটি একটি পুরানো পোস্ট। এটি কাউকে সাহায্য করতে পারে :)
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
NSArray *subviews = [self.view subviews];
for (id objects in subviews) {
if ([objects isKindOfClass:[UITextField class]]) {
UITextField *theTextField = objects;
if ([objects isFirstResponder]) {
[theTextField resignFirstResponder];
}
}
}
}
এটি একটি ভাল জেনেরিক সমাধান:
উদ্দেশ্য গ:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
[self.view endEditing:YES];
}
সুইফট:
override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
self.view.endEditing(true)
}
@ আইকোডবাস্টার সমাধানের ভিত্তিতে: https://stackoverflow.com/a/18756253/417652
সুইফট 4 অনেলাইনার
view.addGestureRecognizer(UITapGestureRecognizer(target: view, action: #selector(UIView.endEditing(_:))))
আমি মনে করি এটির সবচেয়ে সহজ (এবং সর্বোত্তম) উপায় হ'ল আপনার গ্লোবাল ভিউ সাবক্লাস করা এবং hitTest:withEvent
কোনও স্পর্শ শোনার জন্য পদ্ধতিটি ব্যবহার করা । কীবোর্ডে স্পর্শগুলি নিবন্ধভুক্ত করা হয়নি, সুতরাং হিট টেস্ট: উইভেন্টটি কেবল তখনই ডাকা হয় যখন আপনি স্পর্শ / স্ক্রোল / সোয়াইপ / চিম্টি ... অন্য কোথাও কল করেন, তারপরে কল করুন [self endEditing:YES]
।
এটি ব্যবহার করার চেয়ে ভাল touchesBegan
কারণ কারণ touchesBegan
আপনি যদি দেখার উপরে অবস্থিত একটি বোতামে ক্লিক করেন তবে বলা হয় না। এটি তুলনায় ভাল UITapGestureRecognizer
যা উদাহরণস্বরূপ কোনও স্ক্রোলিং অঙ্গভঙ্গি সনাক্ত করতে পারে না। ম্লান স্ক্রিন ব্যবহার করার চেয়ে এটি আরও ভাল কারণ একটি জটিল এবং গতিশীল ইউজার ইন্টারফেসে আপনি কোথাও ম্লান স্ক্রিন রাখতে পারবেন না। তদ্ব্যতীত, এটি অন্যান্য ক্রিয়াকে অবরুদ্ধ করে না, বাইরে বোতামটি নির্বাচন করতে আপনাকে দুবার আলতো চাপতে হবে না (যেমন এটার ক্ষেত্রে UIPopover
)।
এছাড়াও, এটি কল করার চেয়ে ভাল [textField resignFirstResponder]
, কারণ আপনার পর্দায় অনেকগুলি পাঠ্য ক্ষেত্র থাকতে পারে, সুতরাং এটি তাদের সবার জন্য কাজ করে।
বাইরের স্পর্শ করে এটি আপনার কীবোর্ডটি আড়াল করার সহজতম উপায় হতে হবে:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
[self.view endEditing:YES];
}
( যখন পাঠ্যক্ষেত্রের বাইরের অন্যান্য অঞ্চল ট্যাপ করবেন তখন কী-বোর্ড কীভাবে খারিজ করবেন? )
যদি ভিউটি পুরোপুরি এম্বেড থাকে UIScrollView
তবে আপনি নিম্নলিখিতটি ব্যবহার করতে পারেন:
tableView.keyboardDismissMode = UIScrollViewKeyboardDismissModeOnDrag;
tableView.keyboardDismissMode = UIScrollViewKeyboardDismissModeInteractive;
প্রাক্তনটি কীবোর্ডটি অফ স্ক্রিনটি অ্যানিমেটেড করবে যখন টেবিল ভিউটি স্ক্রোল করা হবে এবং পরে স্টক বার্তা অ্যাপ্লিকেশনটির মতো কীবোর্ডটি আড়াল করবে।
নোট করুন যে এগুলি আইওএস 7.0 বা তার উপরেরগুলিতে উপলব্ধ।
আপনি এক্সকোড 6 এবং তারপরে স্টোরিবোর্ডটি ব্যবহার করে এটি করতে পারেন:
আপনার ভিউকন্ট্রোলার দ্বারা ব্যবহৃত ক্লাসের শিরোলেখ ফাইলটিতে এটি যুক্ত করুন:
@interface TimeDelayViewController : UIViewController <UITextFieldDelegate>
- (IBAction)dissmissKeyboardOnTap:(id)sender;
@end
তারপরে এটি একই ভিউকন্ট্রোলারের বাস্তবায়ন ফাইলে যুক্ত করুন:
- (IBAction)dissmissKeyboardOnTap:(id)sender{
[[self view]endEditing:YES];
}
এটি এখন আপনার স্টোরিবোর্ডের দৃশ্যের জন্য (যেমন দেখুন নিয়ন্ত্রণকারী) এক 'গৃহীত পদক্ষেপ' এর মধ্যে একটি হবে:
কীবোর্ডটি ছোঁয়ার ব্যবহারকারীর অঙ্গভঙ্গিতে এখন আপনার এই ক্রিয়াটি হুক করা দরকার।
গুরুত্বপূর্ণ - আপনার স্টোরিবোর্ডে থাকা 'ইউআইভিউ' রূপটি আপনাকে একটি ইউআইসিএন্ট্রোলতে রূপান্তর করতে হবে, যাতে এটি ইভেন্টগুলি পেতে পারে। আপনার ভিউ কন্ট্রোলার দৃশ্যের স্তরক্রম থেকে দর্শনটি নির্বাচন করুন:
... এবং এর শ্রেণী পরিবর্তন করুন:
এখন আপনার দৃশ্যের জন্য 'প্রাপ্ত ক্রিয়াকলাপের' পাশের ছোট চেনাশোনাটি থেকে আপনার দৃশ্যের একটি 'খালি' অংশে টানুন (বাস্তবে আপনি 'রিসিভ অ্যাকশন' ইউআইসিএন্ট্রোল এ টানছেন)। আপনাকে এমন ইভেন্টগুলির একটি নির্বাচন দেখানো হবে যাতে আপনি নিজের ক্রিয়াটি এতে আঁকতে পারেন:
'টাচ আপ ভিতরে' বিকল্পটি নির্বাচন করুন। কীবোর্ডটি ছোঁয়ার কোনও ব্যবহারকারী ক্রিয়ায় আপনি এখন তৈরি আইবিএশনটি হুক করেছেন। যখন ব্যবহারকারী কীবোর্ডটি ট্যাপ করেন, এটি এখন লুকানো থাকবে।
(দ্রষ্টব্য: ইভেন্টটিতে ক্রিয়াটি আটকানোর জন্য, আপনি প্রাপ্ত ক্রিয়াটি সরাসরি আপনার ভিউ কন্ট্রোলার শ্রেণিবিন্যাসের ইউআইসিএন্ট্রোলের দিকেও টেনে আনতে পারেন It's এটি স্তরক্রমের 'নিয়ন্ত্রণ' হিসাবে প্রদর্শিত হয় displayed)
যদি আমি আপনাকে সঠিকভাবে পেয়েছি তবে আপনি কিবোর্ড ওয়াইলকে আউটসাইডে আলতো চাপতে দিতে চান textfield
তবে আপনার রেফারেন্স আপনার কাছে নেই textfield
।
এটা চেষ্টা কর;
reftextField
এখন textFieldDidBeginEditing
সেট করে রেফারেন্সযুক্ত পাঠ্য ক্ষেত্রে
- (void) textFieldDidBeginEditing:(UITextField *)textField{
reftextField = textField;
}
এখন আপনি আনন্দের সাথে যে কোনও বোতামের ঘড়িতে ব্যবহার করতে পারেন, (সম্পাদনা পুনরায় সংশোধন করতে স্বচ্ছ বোতাম যুক্ত করে)
- (void)dismissKeyboard {
[reftextField resignFirstResponder];
}
বা সম্পন্ন বোতামের পদত্যাগ করার জন্য এটি চেষ্টা করে দেখুন।
//for resigning on done button
- (BOOL) textFieldShouldReturn:(UITextField *)textField{
[textField resignFirstResponder];
return YES;
}
এখানে কেবল তালিকায় যুক্ত করতে আমার বাইরের স্পর্শে কী-বোর্ড কীভাবে খারিজ করবেন তার আমার সংস্করণ dism
viewDidLoad:
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap:)];
[self.view addGestureRecognizer:singleTap];
কোথাও:
-(void)handleSingleTap:(UITapGestureRecognizer *)sender{
[textFieldName resignFirstResponder];
puts("Dismissed the keyboard");
}
UITapGestureRecognizer
বিরতির UITextField
পরিষ্কার (এক্স) বোতামটি ব্যবহার করার বিষয়ে এখানে প্রচুর দুর্দান্ত উত্তর সমাধানটি হ'ল তার প্রতিনিধিটির মাধ্যমে অঙ্গভঙ্গি সনাক্তকারীকে দমন করা:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
BOOL touchViewIsButton = [touch.view isKindOfClass:[UIButton class]];
BOOL touchSuperviewIsTextField = [[touch.view superview] isKindOfClass:[UITextField class]];
return !(touchViewIsButton && touchSuperviewIsTextField);
}
এটি সবচেয়ে দৃ .় সমাধান নয় তবে এটি আমার পক্ষে কাজ করে।
return !touchViewIsButton
। আমি অনুমান করি যে অন্য যে কোনও বোতামগুলির জন্য কীবোর্ডটি খারিজ করা উচিত তাদের ক্রিয়াকলাপে এটি করা উচিত। কীবোর্ড বরখাস্তের লেআউট পরিবর্তিত হওয়ার সাথে সাথে টাচআপস ইনসাইড কল নাও হতে পারে।
আপনি ইউআইভিউয়ের জন্য বিভাগ তৈরি করতে পারেন এবং স্পর্শগুলি বিগান মেথোডকে নিম্নরূপে ওভাররাইড করতে পারেন।
এটি আমার পক্ষে ভাল কাজ করছে nd এবং এটি এই সমস্যার সমাধান সমাধানকে কেন্দ্রিয় করে তুলবে।
#import "UIView+Keyboard.h"
@implementation UIView(Keyboard)
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
[self.window endEditing:true];
[super touchesBegan:touches withEvent:event];
}
@end
@ জেনসেন 2k এর উত্তরের সুইফ্ট সংস্করণ:
let gestureRecognizer : UITapGestureRecognizer = UITapGestureRecognizer.init(target: self, action: "dismissKeyboard")
self.view.addGestureRecognizer(gestureRecognizer)
func dismissKeyboard() {
aTextField.resignFirstResponder()
}
এক রৈখিক
self.view.addTapGesture(UITapGestureRecognizer.init(target: self, action: "endEditing:"))
আমি আমার নতুন উন্নয়নের জন্য ব্যারি উদাহরণ ব্যবহার করেছি। এটা দুর্দান্ত কাজ! তবে আমাকে কিছুটা পরিবর্তন অন্তর্ভুক্ত করতে হয়েছিল, কেবলমাত্র পাঠ্যক্ষেত্র সম্পাদনা করার জন্য কীবোর্ড খারিজ করতে হবে।
সুতরাং, আমি ব্যারি উদাহরণে নিম্নলিখিতটি যুক্ত করেছি:
- (void) textFieldDidBeginEditing:(UITextField *)textField
{
_textBeingEdited = textField;
}
-(void) textFieldDidEndEditing:(UITextField *)textField
{
_textBeingEdited = nil;
}
এছাড়াও, আমি লুকানো কীবোর্ড পদ্ধতিটি নিম্নরূপে পরিবর্তন করেছি:
- (IBAction)hideKeyboard:(id)sender
{
// Just call resignFirstResponder on all UITextFields and UITextViews in this VC
// Why? Because it works and checking which one was last active gets messy.
//UITextField * tf = (UITextField *) sender;
[_textBeingEdited resignFirstResponder];
}
সবচেয়ে সহজ এবং সংক্ষিপ্ততম উপায়গুলির মধ্যে একটি হ'ল এই কোডটি আপনারটিতে যুক্ত করা viewDidLoad
[self.view addGestureRecognizer:[[UITapGestureRecognizer alloc]
initWithTarget:self.view
action:@selector(endEditing:)]];
আমি এখানে অনেক প্রতিক্রিয়া চেষ্টা করেছি এবং কোনও ভাগ্য হয়নি। আমার ট্যাপের অঙ্গভঙ্গি শনাক্তকারী সর্বদা আমার UIButtons
টেপ দেওয়ার সময় আমার প্রতিক্রিয়া না জানাতে বাধ্য করেছিলাম, এমনকি আমি সেট করে দিইcancelsTouchesInView
অঙ্গভঙ্গি শনাক্তকারীর সম্পত্তিটি NO তে ।
শেষ পর্যন্ত এই বিষয়টিই সমাধান করেছে:
একটি আইভার আছে:
UITapGestureRecognizer *_keyboardDismissGestureRecognizer;
যখন কোনও পাঠ্য ক্ষেত্র সম্পাদনা শুরু করে, অঙ্গভঙ্গি সনাক্তকারী সেট করুন:
- (void) textFieldDidBeginEditing:(UITextField *)textField
{
if(_keyboardDismissGestureRecognizer == nil)
{
_keyboardDismissGestureRecognizer = [[[UITapGestureRecognizer alloc]
initWithTarget:self
action:@selector(dismissKeyboard)] autorelease];
_keyboardDismissGestureRecognizer.cancelsTouchesInView = NO;
[self.view addGestureRecognizer:_keyboardDismissGestureRecognizer];
}
}
তারপরে কৌশলটি আপনি কীভাবে dismissKeyboard
পদ্ধতিটি সেট আপ করেন তা হল :
- (void) dismissKeyboard
{
[self performSelector:@selector(dismissKeyboardSelector) withObject:nil afterDelay:0.01];
}
- (void) dismissKeyboardSelector
{
[self.view endEditing:YES];
[self.view removeGestureRecognizer:_keyboardDismissGestureRecognizer];
_keyboardDismissGestureRecognizer = nil;
}
আমার ধারণা dismissKeyboardSelector
, টাচ হ্যান্ডলিং এক্সিকিউশন স্ট্যাকের বাইরে কার্যকর করার কিছু আছে ...
সেখানে পাঠানো resignFirstResponder
টেক্সটফাইলে বার্তা পাঠান । দয়া করে এই পোস্ট দেখতে আরও তথ্যের জন্য।
এই উদাহরণে, টেক্সটফিল্ডটি কেবলমাত্র ইউআইটিেক্সটফিল্ড ield
// YourViewController.h
// ...
@interface YourViewController : UIViewController /* some subclass of UIViewController */ <UITextFieldDelegate> // <-- add this protocol
// ...
@end
// YourViewController.m
@interface YourViewController ()
@property (nonatomic, strong, readonly) UITapGestureRecognizer *singleTapRecognizer;
@end
// ...
@implementation
@synthesize singleTapRecognizer = _singleTapRecognizer;
// ...
- (void)viewDidLoad
{
[super viewDidLoad];
// your other init code here
[self.view addGestureRecognizer:self.singleTapRecognizer];
{
- (UITapGestureRecognizer *)singleTapRecognizer
{
if (nil == _singleTapRecognizer) {
_singleTapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(singleTapToDismissKeyboard:)];
_singleTapRecognizer.cancelsTouchesInView = NO; // absolutely required, otherwise "tap" eats events.
}
return _singleTapRecognizer;
}
// Something inside this VC's view was tapped (except the navbar/toolbar)
- (void)singleTapToDismissKeyboard:(UITapGestureRecognizer *)sender
{
NSLog(@"singleTap");
[self hideKeyboard:sender];
}
// When the "Return" key is pressed on the on-screen keyboard, hide the keyboard.
// for protocol UITextFieldDelegate
- (BOOL)textFieldShouldReturn:(UITextField*)textField
{
NSLog(@"Return pressed");
[self hideKeyboard:textField];
return YES;
}
- (IBAction)hideKeyboard:(id)sender
{
// Just call resignFirstResponder on all UITextFields and UITextViews in this VC
// Why? Because it works and checking which one was last active gets messy.
[aTextField resignFirstResponder];
NSLog(@"keyboard hidden");
}
- (void)viewDidLoad
{
[super viewDidLoad];
UITapGestureRecognizer *singleTapGestureRecognizer = [[UITapGestureRecognizer alloc]
initWithTarget:self
action:@selector(handleSingleTap:)];
[singleTapGestureRecognizer setNumberOfTapsRequired:1];
[singleTapGestureRecognizer requireGestureRecognizerToFail:singleTapGestureRecognizer];
[self.view addGestureRecognizer:singleTapGestureRecognizer];
}
- (void)handleSingleTap:(UITapGestureRecognizer *)recognizer
{
[self.view endEditing:YES];
[textField resignFirstResponder];
[scrollView setContentOffset:CGPointMake(0, -40) animated:YES];
}
আপনার ভিউকন্ট্রোলআরএম ফাইলটিতে এই কোডটি যুক্ত করুন:
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
[self.view endEditing:YES];
}
এই ক্ষেত্রে, স্ক্রোলভিউ ব্যবহার করা যেতে পারে এবং স্ক্রোলভিউতে যুক্ত করা যেতে পারে TextField
এবং আমি কীবোর্ডটি ScrollView
খারিজ করে দেখুন এবং তারপরে ট্যাপ করতে চাই । আমি সেক্ষেত্রে স্যাম্পল কোড তৈরি করার চেষ্টা করেছি। এটার মত,
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var scrollView: UIScrollView!
@IBOutlet weak var textField: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(ViewController.tap(_:)))
view.addGestureRecognizer(tapGesture)
// Do any additional setup after loading the view, typically from a nib.
}
func tap(gesture: UITapGestureRecognizer) {
textField.resignFirstResponder()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
আপনার স্টোরিবোর্ডটি ঠিক ঠিক এর মতো দেখুন।
ইউআইটিেক্সটফিল্ডের বাইরে ক্লিক করে কীবোর্ড খারিজ করার জন্য আপনি ইউআইটিএপজিস্টারআরকনগনিজার পদ্ধতিটি ব্যবহার করতে পারেন। এই পদ্ধতিটি ব্যবহার করে যখনই ব্যবহারকারী ইউআইটিেক্সটফিল্ডের বাইরে ক্লিক করবেন তখন কীবোর্ড খারিজ হয়ে যাবে। নীচে এটি ব্যবহারের জন্য কোড স্নিপেট রয়েছে।
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]
initWithTarget:self
action:@selector(dismissk)];
[self.view addGestureRecognizer:tap];
//Method
- (void) dismissk
{
[abctextfield resignFirstResponder];
[deftextfield resignFirstResponder];
}