سؤال

اعتدت inputView لإظهار uipickerview بالنسبة لي textfield, ، لكني أستخدم نفس الشيء textfield لوظائف أخرى.كيف يمكنني إظهار لوحة المفاتيح القياسية بعد استخدامها inputView من أجل ذلك textfield?

textfield.inputView = pickrView;
هل كانت مفيدة؟

المحلول

فقط

textfield.inputView = nil;

عملت بالنسبة لي

نصائح أخرى

كما قال بافل كالجونين ، تحتاج فقط إلى تعيين إنبوتفيو إلى لا شيء ، ولكن عندما لوحة المفاتيح مرئية بالفعل ، لديك لاستقالة فيرستريسبوندر أولا ، تعيين إنبوتفيو إلى لا شيء ومن ثم تصبح فيرستريسبوندر مرة أخرى.

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.35];

[yourTextField resignFirstResponder];
yourTextField.inputView = nil;
[yourTextField becomeFirstResponder];

[UIView commitAnimations];

أعتقد أن هذا الرمز ربما يمكن أن يعمل

 [textField.inputView addTarget:self action:@selector(doTest) forControlEvents:UIControlEventTouchUpInside];

- (void)doTest
{
  if([textFiled isFirstResponder])
  {
    [textFiled resignFirstResponder];
  }
  else
  {
    [textFiled becomeFirstResponder];
  }
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top