First Responder: یہ کیا ہے، مقصد اور انپٹ آبجیکٹ

مصنف: IT Sectr اشاعت: 2026-07-09 مطالعے کا وقت: 9 منٹ

First Responder iOS میں UIResponder آبجیکٹ ہے جو ٹوچ ایوینٹ، کی پریس، شیک جسٹچرز اور مینو کمانڈز سب سے پہلے وصول کرتا ہے۔ کسی بھی لمحے، ایپلیکیشن میں صرف ایک ہی آبجیکٹ first responder ہو سکتا ہے۔ تقرری خودکار طور پر (UITextField کے فوکس کرنے پر) یا پروگرامیٹک طور پر becomeFirstResponder میتھڈ کے ذریعے ہوتا ہے۔ Apple ڈیویلپر ڈاکیومینٹیشن (2026) کے مطابق، کوئی آبجیکٹ صرف اس وقت first responder ہو سکتا ہے جب اسکا canBecomeFirstResponder میتھڈ true واپس کرتا ہے، جو اس میکانزم کو واضح اور قابل کنٹرول بناتا ہے۔

اہم نکات

  • First Responder انپٹ ایوینٹز کا مرکزی وصول کنندہ ہے، خودکار طور پر یا becomeFirstResponder کے ذریعے مقرر ہوتا ہے۔
  • صرف ایک آبجیکٹ کسی مقررہ وقت first responder ہو سکتا ہے۔
  • canBecomeFirstResponder کو true واپس کرنا چاہیے تاکہ آبجیکٹ first responder ہو سکے۔
  • ResignFirstResponder first responder کی حالت ہٹاتا ہے اور UITextField کے لیے کی بورڈ چھپاتا ہے۔
  • UITextField اور UITextView صارف سے فوکس حاصل کرنے پر first responder ہو جاتے ہیں۔

First Responder کیا ہے

First Responder وہ UIResponder آبجیکٹ ہے جو فیل وقت iOS ایپلیکیشن میں انپٹ ایوینٹ وصول کرتا ہے۔ سیسٹم تمام ٹوچ ایوینٹ، کی پریسیز، موشن ایوینٹ (ڈیوائس ہلانا) اور ایکشن پیغامات (مثالاً، کانٹیکسٹ مینو کو کال کرنا) اس آبجیکٹ کو بھیجتا ہے۔

First responder کا تصور Responder Chain کی پہلی کڑی ہے۔ اگر first responder کسی موصولہ ایوینٹ کو ہینڈل نہیں کرتا، تو یہ خودکار طور پر زنجیر میں اگلے آبجیکٹ کو منتقل ہو جاتا ہے۔ یہ یقینی بناتا ہے کہ کوئی ایوینٹ گم نہیں ہوتا، بلکہ تدریجی طور پر درجہ بندی میں تمام ممکنہ ہینڈلرز کو پیش کیا جاتا ہے۔

Apple کے مطابق، first responder کی حالت UIResponder اور اسکے canBecomeFirstResponder اور becomeFirstResponder میتھڈز سے قریبی سے منسلک ہے۔ پہلے سے طے کے مطابق، UIView صرف مخصوص زیب کلاسوں (UITextField، UITextView، UISearchBar) کے لیے true واپس کرتا ہے۔ دیگر ویوز، سادہ UIView سمیت، false واپس کرتے ہیں، جو حادثی تقرری کو روکتا ہے۔

First Responder کیسے مقرر ہوتا ہے

تقرری دو طریقوں سے ہو سکتی ہے: خودکار طور پر، جب صارف UITextField کو چھوتا ہے (سیسٹم اندرونی طور پر becomeFirstResponder کو کال کرتا ہے)، یا پروگرامیٹک طور پر، جب ڈیولپر کسی بھی UIResponder آبجیکٹ پر becomeFirstResponder میتھڈ کو واضح طور پر کال کرتا ہے۔

تقرری سے پہلے، iOS canBecomeFirstResponder کو چیک کرتا ہے۔ اگر میتھڈ false واپس کرتا ہے، تو becomeFirstResponder کا کال نظر انداز کر دیا جاتا ہے اور آبجیکٹ first responder نہیں ہوتا۔ یہ ایک تحفظی میکانزم ہے جو ایوینٹس کو ہینڈل کرنے کے لیے تیار نہیں آبجیکٹس (مثالاً، چھپے ہوئے یا ناکارہ انٹرفیس عناصر) کی تقرری کو روکتا ہے۔

swift
class CustomTextField: UITextField {
    override var canBecomeFirstResponder: Bool {
        return super.canBecomeFirstResponder
    }
}

// پروگرامیٹک تقرری
textField.becomeFirstResponder()

// چیک کریں کہ آیا first responder ہے
if textField.isFirstResponder {
    print("TextField اب first responder ہے")
}

جب ایک نیا first responder مقرر ہوتا ہے، iOS خودکار طور پر پځھلے آبجیکٹ پر resignFirstResponder کو کال کرتا ہے۔ یہ یقینی بناتا ہے کہ سیسٹم میں ہمیشہ صرف ایک ہی آبجیکٹ first responder حالت میں ہو۔ اگر نیا آبجیکٹ first responder نہیں ہو سکتا (canBecomeFirstResponder = false)، تو پرانا آبجیکٹ اپنی حالت برقرار رکھتا ہے۔

First Responder اور کی بورڈ

iOS کی بورڈ first responder میکانزم کی وجہ سے سکرین پر ظاہر ہوتی ہے۔ جب UITextField یا UITextView first responder ہوتا ہے، سیسٹم خودکار طور پر اس فیلڈ کے موجودہ keyboardType سے وابستہ کی بورڈ کو ظاہر کرتا ہے۔ جب first responder resign کرتا ہے، کی بورڈ چھپ جاتی ہے۔

یہ رویہ iOS میں ایک اہم UX میکانزم ہے: صارف انپٹ فیلڈ کو چھوتا ہے — کی بورڈ ظاہر ہوتی ہے؛ Return دباتا ہے یا دوسرا فیلڈ چھوتا ہے — کی بورڈ بدلتی یا چھپ جاتی ہے۔ ڈیولپر UIResponder میتھڈز کے ذریعے، اور inputView اور inputAccessoryView کے ذریعے معیاری کی بورڈ کو کسٹم سے بدلنے کے لیے اسے کنٹرول کر سکتا ہے۔

Input Accessory View کی بورڈ کے اوپر ایک اضافی پینل ہے جو first responder سے بھی منسلک ہے۔ مثالاً، انپٹ فیلڈز کے درمیان نیویگیشن کے لیے اگلا، پځھلا، ہو گئا بٹن کے ساتھ ایک پینل۔ یہ کی بورڈ کے ساتھ ظاہر اور غائب ہوتا ہے، first responder حالت کے ساتھ هم آہنگ ہوتا ہے۔

واقعہFirst Responder حالتکی بورڈ
UITextField کو چھوناFirst responder ہو جاتا ہےظاہر ہوتی ہے
Return دبانارہتا ہے یا resign کرتا ہےرہتی ہے یا چھپ جاتی ہے
دوسرا فیلڈ چھونانئے فیلڈ میں چلا جاتا ہےبدل جاتی ہے
resignFirstResponder کو کال کرناہٹا دی جاتی ہےچھپ جاتی ہے
ایپ کا چھپناخودکار resign کرتا ہےچھپ جاتی ہے

Resign First Responder

ResignFirstResponder UIResponder کھا ایک میتھڈ ہے جو کسی آبجیکٹ سے first responder حالت کو ہٹاتا ہے۔ کال کے بعد، آبجیکٹ انپٹ ایوینٹ وصول کرنا بند کر دیتا ہے اور کی بورڈ (اگر فعال تھی) چھپ جاتی ہے۔ میتھڈ ایک Bool واپس کرتا ہے — true اگر resign کامیاب رہا۔

ڈیولپر اکسر ہو گئا بٹن دبانے، سکرین کے خالی علاقے کو چھونے (view.endEditing)، یا سکرین سے نکلتے وقت resignFirstResponder کو کال کرتے ہیں۔ view.endEditing(true) ایک ساتھ تمام چیلڈ ٹیکسٹ فیلڈز کے لیے resign کرنے کا ایک آسان طریقہ ہے: یہ پورے ویو درجہ بندی کو طے کرتا ہے اور موجودہ first responder پر resignFirstResponder کو کال کرتا ہے۔

swift
// ہو گئا بٹن پر resign
@objc func doneButtonTapped() {
    textField.resignFirstResponder()
}

// خالی جگہ پر ٹیپ کرنے پر resign
override func touchesBegan(
    _ touches: Set<UITouch>,
    with event: UIEvent?
) {
    view.endEditing(true)
}

// تمام فارم فیلڈز کے لیے resign
func validateAndSubmit() {
    view.endEditing(true)
    // فارم جمع کرانے کی لاجیک
}

ایسے حالات ہوتے ہیں جہاں resignFirstResponder false واپس کر سکتا ہے۔ ایسا تب ہوتا ہے جب آبجیکٹ نے میتھڈ کو اووررائیڈ کیا ہو اور حالت کو ہٹانے سے واضح طور پر منع کیا ہو۔ مثالاً، تصدیق کے عمل میں ایک ٹیکسٹ فیلڈ ڈےٹا کے نقصان کو روکنے کے لیے عارضی طور پر resign کو بلاک کر سکتا ہے۔ ایسے معاملات میں، تصدیق مکمل ہونے تک انتظار کریں اور پھر زبردستی resign کریں۔

First Responder کی جانچ اور نگرانی

UIResponder isFirstResponder پراپرٹی (صرف پڑھنے کے لیے) فراہم کرتا ہے، جو true واپس کرتی ہے اگر دیا گیا آبجیکٹ فیل وقت first responder ہے۔ یہ مشروطی منطق کے لیے مفید ہے — مثالاً، اگر کوئی ٹیکسٹ فیلڈ فوکس میں ہو اور صارف ڈےٹا درج کر رہا ہو تو کوئی کارروائی کرنے سے بچنے کے لیے۔

iOS ایپلیکیشن کی وسع پر موجودہ first responder حاصل کرنے کے لیے کوئی مضمونی API فراہم نہیں کرتا۔ ڈیولپر UIResponder میتھڈ کا استعمال کرکے ویو درجہ بندی کو طے کرکے ایسا کرتے ہیں۔ Apple first responder کے لیے ایک کمزور حوالہ (weak reference) کی سفارش کرتا ہے، جسے KVO یا ڈیلیگٹس کے ذریعے اپڈیٹ کیا جا سکتا ہے۔

swift
// First responder چھو١نے کا ایکسٹینشن
extension UIView {
    var firstResponder: UIResponder? {
        guard isFirstResponder else {
            return subviews.compactMap { $0.firstResponder }.first
        }
        return self
    }
}

// استعمال
if let current = view.firstResponder {
    print("Current first responder: \(current)")
}

تبدیلیاں ٹریک کرنے کے لیے، آپ UIResponder.keyboardWillShowNotification اور UIResponder.keyboardWillHideNotification کی سبسکرائیوں کر سکتے ہیں — وہ بالاواسطہ طور پر اشارہ کرتے ہیں کہ کوئی ٹیکسٹ آبجیکٹ first responder ہو گیا ہے یا رہ گیا ہے۔ تاہم، isFirstResponder کی تبدیلیوں کے لیے کوئی براہ راست سبسکرائیوں موجود نہیں ہے؛ اسکے بجای KVO یا کسٹم ڈیلیگٹس استعمال کیے جاتے ہیں۔

First Responder اور کسٹم ویوز

کسٹم ویوز canBecomeFirstResponder کو اووررائیڈ کرکے اور true واپس کرکے first responder ہو سکتے ہیں۔ یہ ان اجزاء کے لیے ضروری ہے جو کی بورڈ یا فزیکل بٹن ایوینٹ وصول کرنے چاہیں — مثالاً، کسٹم گیم کنٹرولرز یا UITextView پر مبنی کوڈ ایڈیٹرز۔

کسٹم first responder بناتے وقت، رسائیتی کو دھیان میں رکھنا اہم ہے: VoiceOver اور Switch Control نیویگیشن کے لیے درست first responder تقرری پر انھصار کرتے ہیں۔ اگر ایک کسٹم ویو first responder بن جاتا ہے، تو اسے UIAccessibility پروٹوکول کو صحیح طور پر لاگو کرنا چاہیے اور معاونتی ٹیکنالجیز کو اپنی حالت کی رپورٹ کرنا چاہیے۔

کسٹم انپٹ (مثالاً، بارکوڈ اسکینر یا ڈجیٹل کیپیڈ) کے لیے، inputView پراپرٹی کو اووررائیڈ کریں — ایک کسٹم UIView واپس کریں جو اس ویو کے first responder ہونے پر معیاری کی بورڈ کے بجای ظاہر ہو گی۔ اسی طرح، inputAccessoryView کی بورڈ کے اوپر ایک پینل کا اضافہ کرتا ہے۔

اکثر پوچے جانے والے سوالات

iOS میں First Responder کیا ہے؟

First Responder وہ UIResponder آبجیکٹ ہے جو فیل وقت انپٹ ایوینٹ (ٹوچ، کیز، ایکسیلرومیٹر) وصول کرتا ہے۔ یہ becomeFirstResponder کے ذریعے مقرر ہوتا ہے اور canBecomeFirstResponder سے true واپس کرنا چاہیے۔ ایک ایپلیکیشن میں صرف ایک آبجیکٹ first responder ہو سکتا ہے۔

چھوئے بغیر UITextField کو first responder کیسے بنایا جائے؟

textField.becomeFirstResponder() کو پروگرامیٹک طور پر کال کریں، مثالاً، viewDidAppear میں۔ یقینی بنائیں کہ textField چھپا نہیں ہے، userInteractionEnabled = true، اور isEnabled = true۔ اگر فیلڈ UITableView یا UICollectionView کے اندر ہے، تو یقینی بنائیں کہ سیل سکرین پر نظر آ رہی ہے۔

ٹیکسٹ فیلڈ کے باہر ٹیپ کرکے کی بورڈ کو کیسے چھپایں؟

مرکزی ویو پر ایک UITapGestureRecognizer شامل کریں اور اسکے ہینڈلر میں view.endEditing(true) کو کال کریں۔ یہ خودکار طور پر موجودہ first responder ڢوںگے گا اور resignFirstResponder کو کال کرے گا۔ متبادل طور پر، UIViewController میں touchesBegan کو endEditing کے کال کے ساتھ اووررائیڈ کریں۔

becomeFirstResponder false کیوں واپس کرتا ہے؟

becomeFirstResponder false واپس کرتا ہے اگر canBecomeFirstResponder false واپس کرتا ہے، ویو چھپا ہو، وینڈو درجہ بندی میں نہیں ہو، یا userInteractionEnabled = false ہو۔ یہ بھی چیک کریں کہ ویو وینڈو میں شامل ہے — سکرین پر نہ ہونے والا ویو becomeFirstResponder کو جواب نہیں دے گا۔

کیسے طے کریں کہ کون سا آبجیکٹ فیل وقت first responder ہے؟

iOS اس کے لیے کوئی عالمی API فراہم نہیں کرتا۔ ایک UIView ایکسٹینشن کے ذریعے ویو درجہ بندی کا تکراری طے استعمال کریں جو ہر subview پر isFirstResponder کو چیک کرتا ہے۔ ایک متبادل AppDelegate میں آخری first responder کا ایک کمزور حوالہ محفوظ کرنا اور UITextField ڈیلیگٹس کے ذریعے اسے اپڈیٹ کرنا ہے۔

خلاصہ

  • First Responder iOS میں انپٹ ایوینٹ وصول کرنے والا واحد UIResponder آبجیکٹ ہے۔ یہ Responder Chain کی پہلی کڑی ہے۔
  • becomeFirstResponder آبجیکٹ کو first responder کے طور پر مقرر کرتا ہے، لیکن صرف اس وقت جب canBecomeFirstResponder true واپس کرتا ہے — یہ سیسٹم کا ایک واضح تحفظی میکانزم ہے۔
  • resignFirstResponder first responder حالت کو ہٹاتا ہے؛ ٹیکسٹ فیلڈز کے لیے، یہ خودکار طور پر کی بورڈ کو چھپادا ہے۔
  • UITextField اور UITextView فوکس پر first responder ہو جاتے ہیں اور دوسرے فیلڈ پر becomeFirstResponder کے ذریعے پروگرامیٹک طور پر بدلے جا سکتے ہیں۔
  • view.endEditing(true) ویو درجہ بندی میں تمام چیلڈ ریسپونڈر آبجیکٹس کو resign کرنے کا ایک آسان طریقہ ہے۔
  • کسٹم ویوز مخصوص انپٹ مناظر کے لیے canBecomeFirstResponder کو اووررائیڈ کرکے first responder ہو سکتے ہیں۔
  • First responder کا ٹریکنگ تکراری subview طے کرنے یا بالاواسطہ کی بورڈ اطلاعات کے ذریعے لاگو کیا جاتا ہے۔

ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے

IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔

پروجیکٹ پر بحث کریں

مزید پڑھیں