سؤال

أنا مبتدئ.

لدي مخصص ayatableviewcell مع 3 عناصر:

uilabel uitextfield و uibutton

سؤالي هو، كيف أعرف من أي خلية تم النقر فوق الزر النقر فوق أو تم تحرير TextField؟

هل هناك طريقة لتعقبها؟

شكرا لأي ردود.

هل كانت مفيدة؟

المحلول

ما أقوم به عادة هو بعد تكوين الخلية المخصصة، أحفظ NSINDEXPATH من الخلية في عنوان الزر الخاص باليوم UicontrolstateApplication.

في الجدول المطول الخاص بك: CellFOVERONINDEXPATH: الطريقة، عند تكوين الخلية:

[theButton setTitle:(NSString *)indexPath forState:UIControlStateApplication];

ثم، في الإجراء الخاص بك:


- (IBAction) buttonWasClicked:(UIButton *) senderButton {
    NSIndexPath *indexPath;

    indexPath = (NSIndexPath *)[senderButton titleForState:UIControlStateApplication];

    NSLog(@"Sender button was clicked in cell at NSIndexPath section: %d row: %d ", [indexPath section], [indexPath row]);
}

أنا لست سعيدا حقا بهذه الطريقة. إذا كان لدى شخص ما طريقة نظافة للقيام بذلك، فأنا أحب أن أسمع عنها.

نصائح أخرى

إذا كان لديك فقط قسم واحد يمكنك تخزين indexPath.row في ال button.tag واستردادها في الإجراء الذي يتم تشغيله بواسطة هذا الزر.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top