هل تريد تغيير طريقة عرض لوحة المفاتيح ثم الضغط على الصفحة الرئيسية ، والعودة لعرض النتائج في العرض بدون إزاحة؟

أنا استخدم الرمز أدناه صراف آلي. إنها تعمل بشكل جيد طالما أنك لا تتخلى عن التطبيق (اضغط على الصفحة الرئيسية) أثناء زيادة لوحة المفاتيح. لذلك فكرت ، بسيطة ، فقط resignFirstResponder في viewWillDissappear: (BOOL) متحركة ، ولكن لا تحصل على استدعاء الضغط على البيت على ما يبدو ...

So quick recap of the problem scenario: Tap the textView -> keyboard comes up, view is shifted Press home Open app again -> keyboard still up, view is back where it was, so content not visible

 - (void)viewDidLoad
    {
        [super viewDidLoad];
        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];
    }

- (void) keyboardWillShow: (NSNotification*) aNotification;
    {       
        [UIView beginAnimations:nil context:NULL];
        [UIView setAnimationDuration:0.3];
        CGRect rect = [[self view] frame];
        rect.origin.y -= 60; 
        [[self view] setFrame: rect];
        [UIView commitAnimations];
    }

    - (void) keyboardWillHide: (NSNotification*) aNotification;
    {
        [UIView beginAnimations:nil context:NULL];
        [UIView setAnimationDuration:0.3];
        CGRect rect = [[self view] frame];
        rect.origin.y += 60;
        [[self view] setFrame: rect];
        [UIView commitAnimations];
    }
0

1 إجابة

يمكنك إضافة إشعار لإدخال حدث الخلفية ، مثل الشفرة التالية

 - (void)viewDidLoad
{
    //Add this 
    [[NSNotificationCenter defaultCenter] addObserver: self
                                             selector: @selector(handleEnteredBackground:) 
                                                 name: UIApplicationDidEnterBackgroundNotification
                                               object: nil];
}

وفي الوظيفة

- (void) handleEnteredBackground:(NSObject*)obj
{
    //Adjust your views   
}
0
وأضاف