ইউআইটিেক্সটফিল্ড - রিটার্ন বোতামের ইভেন্টটি ক্যাপচার করুন


104

ইউআইটিেক্সটফিল্ড সম্পাদনা করার সময় কোনও ব্যবহারকারী "রিটার্ন" কীবোর্ড বোতাম টিপলে কীভাবে সনাক্ত করতে পারি? যখন ব্যবহারকারী "রিটার্ন" বোতাম টিপেন তখন কীবোর্ড খারিজ করার জন্য আমার এটি করা দরকার।

ধন্যবাদ

উত্তর:


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

স্টোরিবোর্ডে প্রতিনিধি সেট করতে ভুলবেন না ...

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


47
আপনার ভিউ কন্ট্রোলারটি টেক্সটফিল্ডের প্রতিনিধি হিসাবে সেট করা আছে তা নিশ্চিত করুন।
জেকেল

4
ধন্যবাদ. আমার জন্য আমি প্রতিনিধি সেট করে দিয়েছি self.yourTextField.delegate = self;। এমনকি একাধিক পাঠ্য ক্ষেত্রও কাজ করে।
হ্যাক্স্পোর

@ প্রক্সাইটেলস এটি এখন স্টোরিবোর্ডে প্রতিনিধি প্রয়োজন ছাড়াই করা যেতে পারে দয়া করে নীচের উত্তরটি দেখুন।
ব্লেক লকলে

52

প্রতিনিধিদলের প্রয়োজন নেই, এখানে একটি ওয়ান-লাইনার রয়েছে:

- (void)viewDidLoad {
    [textField addTarget:textField
                  action:@selector(resignFirstResponder)
        forControlEvents:UIControlEventEditingDidEndOnExit];
}

দুঃখজনকভাবে আপনি নিজের স্টোরিবোর্ডে সরাসরি এটি করতে পারবেন না (স্টোরিবোর্ডে যেগুলি নির্গত করে এমন কন্ট্রোলের সাথে আপনি ক্রিয়াগুলি সংযোগ করতে পারবেন না), তবে আপনি এটি কোনও মধ্যস্থতাকারী ক্রিয়াকলাপের মাধ্যমে করতে পারেন।


4
আমি কেবল উল্লেখ করতে চাই যে এই UIControlEventEditingDidEndOnExitঅনুষ্ঠানটি কেবল তখনই প্রেরণ করা হয় যদি textFieldShouldReturn:ডেলিগেট পদ্ধতিটি হ্যাঁ দেয় (পূর্বে পাঠ্য ক্ষেত্রের পদত্যাগ না করে)।
অ্যালেক্স -২

আপনি না আছে প্রতিনিধিদল বাস্তবায়ন। তবে আপনি যদি করতে পারেন তবে আপনাকে YESএই পদ্ধতির জন্য ফিরে আসতে হবে ।
এমএক্সসিএল

10

SWIFT 3.0

override open func viewDidLoad() {
    super.viewDidLoad()    
    textField.addTarget(self, action: #selector(enterPressed), for: .editingDidEndOnExit)
}

এন্টারপ্রেসড () ফাংশনে আপনার পরে থাকা সমস্ত আচরণ রাখুন

func enterPressed(){
    //do something with typed text if needed
    textField.resignFirstResponder()
}

9

আপনি এখন এটি প্রেরিত ইভেন্ট 'ডিড এন্ড প্রস্থান' ব্যবহার করে স্টোরিবোর্ডটি করতে পারেন।

আপনার দর্শন নিয়ামক সাবক্লাসে:

 @IBAction func textFieldDidEndOnExit(textField: UITextField) {
    textField.resignFirstResponder()
}

পছন্দসই পাঠ্যক্ষেত্রের জন্য আপনার স্টোরিবোর্ডে:

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


4

ইউআইটিেক্সটফিল্ডডেলিগেট ব্যবহার করে সুইফ্ট সংস্করণ:

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

4

সুইফট 5

textField.addTarget(textField, action: #selector(resignFirstResponder), for: .editingDidEndOnExit)

-1
- (BOOL)textFieldShouldReturn:(UITextField *)txtField 
{
[txtField resignFirstResponder];
return NO;
}

এন্টার বোতামটি ক্লিক করা হলে এই প্রতিনিধি পদ্ধতিটি বলা হয়। আপনি এই প্রতিনিধি পদ্ধতি থেকে রিটার্ন বোতামটি ক্যাপচার করতে পারেন।

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