これが私のコードです:
-(void)setViewMovedUp:(BOOL)movedUp
{
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.2]; // if you want to slide up the view
[UIView setAnimationBeginsFromCurrentState:YES];
CGRect rect = scroll.frame;
if (movedUp)
{
rect.size.height += kOFFSET_FOR_KEYBOARD;
rect.origin.y -= kOFFSET_FOR_KEYBOARD;
}
else
{
rect.size.height -= kOFFSET_FOR_KEYBOARD;
rect.origin.y += kOFFSET_FOR_KEYBOARD;
}
scroll.frame = rect;
[UIView commitAnimations];
}
- (void)keyboardWillHide:(NSNotification *)notif {
[self setViewMovedUp:NO];
}
- (void)keyboardWillShow:(NSNotification *)notif{
[self setViewMovedUp:YES];
}
- (void)viewWillAppear:(BOOL)animated
{
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:)
name:UIKeyboardWillShowNotification object:self.view.window];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:)
name:UIKeyboardWillHideNotification object:self.view.window];
}
- (void)viewWillDisappear:(BOOL)animated
{
// unregister for keyboard notifications while not visible.
[[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillShowNotification object:nil];
[[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillHideNotification object:nil];
}
問題は、これをTextView3でのみ機能し、TextView2またはTextView1では機能しないようにするにはどうすればよいかということです。BackGroundは、TextView1とTextView2は、私のビューの上にあるので、それを必要としないということです。TextView3のみがTextViewであり、キーボードがオーバーレイされており、私が書いたものを読み取れるようにビューを修正する必要があるため、読み取ることができません。