سؤال

أقوم حاليًا بتطوير لعبة OpenGL ES لجهاز iPhone و iPod Touch.

كنت أتساءل كيف يمكنني بسهولة سحب اللوح؟هناك مسؤول ، موثق إمكانية سحب لوحة uikeyboard دون استخدام uitextfield من uitextview؟

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

المحلول

هذا ليس ممكنًا "رسميًا" - لا يمكنك الوصول إلى كائن اللوحة Ukeyboard على الإطلاق أثناء البقاء في إرشادات Apple.

إنشاء uitextfield غير مرئي ، ثم الاتصال [textField becomeFirstResponder] هل سيفعل المهمة - يمكنك حتى الفئة الفرعية uitextfield أولاً ، ثم تجاوز طريقة المندوب textField:shouldChangeCharactersInRange: لإعادة توجيه إدخال النص إلى المكان الذي تريد أن يذهب إليه.

نصائح أخرى

إذا قمت بدراسات الفئة الفرعية ، وأعلنت بروتوكول UikeyInput ، فستظهر لوحة المفاتيح عندما تصبح FirstreSponder.

انظر بروتوكول uikeyinput هنا.

شيء واحد تعثرني هو أنك ستحتاج إلى تجاوز رسالة CanBecomeFirsterSponder.

هذا ممكن بالفعل. كنت قد ناضلت كثيرا مع هذا. يمكن استخدام بروتوكول UikeyInput لسحب لوحة المفاتيح دون استخدام UITextfield أو UITextView. ومع ذلك فهي متوفرة فقط في iOS 3.2 وما فوق. هنا الدورة التعليمية على ذلك.

امل ان يساعد.

لقد عرضت لوحة المفاتيح دون أي uitextfield مرئية عن طريق وضع إطار Textfield الخاص بي من الشاشة المرئية:

#define TEXT_FRAME                 -50,-50,0,0

self.textField = [[UITextField alloc] initWithFrame:CGRectMake(TEXT_FRAME)];

عندما أقوم بتعيين "المستجيب الأول" ، تصبح لوحة المفاتيح مرئية دون أي منطقة إدخال مرئية:

// show the keyboard    
[self.textField becomeFirstResponder];

لقد أسقطت الفكرة لاحقًا. ومع ذلك ، لا أعرف مطابقة إرشادات Apple.

لم أحاول ذلك ولكن http://www.cocoadev.com/index.pl؟uikeyboard يعرض بعض التعليمات البرمجية التي يبدو أنها يجب أن تعمل.

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