0

私は TextField1 と TextField2 を持っています TextField2
のためにキーボードが表示されている場合にのみ、スクロール ビューをスクロールしたいと思います。これは私の実際のコードです。
解決策はありますか?

-(void) viewWillAppear:(BOOL)animated {    
[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(keyboardDidShow:)
                                             name:UIKeyboardDidShowNotification
                                           object:self.view.window];

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(keyboardDidHide:)
                                             name:UIKeyboardDidHideNotification
                                           object:nil];
}

-(void) keyboardDidShow:(NSNotification *) notification {
   self.ScrollView.center = CGPointMake(self.originalCenter.x,
                                        self.originalCenter.y-100);
}

-(void) keyboardDidHide:(NSNotification *) notification {   
    self.ScrollView.center = CGPointMake(self.originalCenter.x,
                                         self.originalCenter.y);
}
4

1 に答える 1

1

UITextfieldデリゲート メソッドをリッスンする必要があります。

textfield2.delegate = self;

-(void)textFieldDidBeginEditing: (UITextField*)textField {
    if (textField == textField2) {
        //ENABLE THE SCROLLING
    }
}

-(void)textFieldDidEndEditing: (UITextField*)textField {
    if (textField == textField2) {
        //DISABLE THE SCROLLING
    }
}

ニーズに合わせてメソッドをカスタマイズするだけです。

キーボードが表示される正確なタイミングが必要な場合は、bool を使用して確認できます。

if (textField == textField2) {
    scrollBool = YES;
    }
}

-(void)textFieldDidEndEditing: (UITextField*)textField {
    if (textField == textField2) {
        scrollBool = NO;
    }
}

-(void)keyBoardDidShow.... {
    if (scrollBool) {
        // do the scrolling
    }
}
于 2012-05-26T21:34:09.277 に答える