سؤال

لدي مشكلة. لقد قمت بتنفيذ UITEXTFILD الذي يحتوي على برامج فونشرة، ثم قمت بتنفيذ الطريقة التالية لاستدعاء رقم الهاتف:

- (void)rufeAn{
NSString *prefix = (@"tel://");
UIApplication *app = [UIApplication sharedApplication];
NSString *dialThis = [NSString stringWithFormat:@"%@%@", prefix, map.kordinate.telefon];
NSURL *url = [NSURL URLWithString:dialThis];
[app openURL:url];

}

ولكن كيف يمكنني أن أقول للنصوص عندما أتطرق إليها، لبدء الطريقة والطلب؟

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

المحلول

وأنا أتفق مع ST3FAN أن TextField العادي يجب ألا يسبب اتخاذ إجراء من خلال النقر. سأفترض في الوقت الراهن أن يكون لديك uitextfield خاصة يمكن أن يكون متعهدا، ثم يبدو وكأنه UILabel, ، منسق لتبدو وكأنها ارتباط تشعبي. مثل هذا واجهة المستخدم يمكن أن يكون صحيحا. النقر فوق حقل نصي يبدو أنه قابل للتحرير ولكن في الواقع يجعل مكالمة هاتفية بالطبع تكون غير صحيحة.

يمكنك تنفيذ UITextFieldDelegate البروتوكول ومشاهدة textFieldShouldBeginEditing:. وبعد نظرا لأن حقل النص غير قابل للتحرير، فمن الواضح أنك يجب أن تعاد لا.

يمكنك إضافة زر "مكالمة" داخل حقل النص باستخدام طرق عرض تراكب لها (leftView أو rightView; ؛ اقرأ المستندات على UE الصحيح لهذه).

هل يمكن أن تثقيف UITextField لتجاوز touchesBegan:withEvent, touchesEnded:withEvent: و touchesCancelled:withEvent: للتعامل مع لمس نفسك. تذكر: يجب أن تتلقى touchesBegan و touchesEnded بدون touchesCancelled بينهما من أجل النظر في الأمر. لا تقم أبدا بإطلاق العمل فقط على touchesBegan.

نصائح أخرى

النقر فوق حقل نص يجب ألا ينتج عنه بعض الإجراءات. في رأيي هذا هو تصميم واجهة المستخدم السيئة. لماذا لا تضيف زر بجوار الحقل الذي يدير الرمز أعلاه؟

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