Bir klavye gösterildiğinde bazı konum ayarlarına ihtiyaç duyan bir kullanıcı arayüzüne sahibim.iOS8 UIKeyboardWillShowNotification Üçüncü taraf klavye yüksekliği
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillShow:)
name:UIKeyboardWillShowNotification
object:nil];
Not: Bir klavye gösterildiğinde
aşağıdaki
algılamak için kullanılır Ben UIKeyboardWillShowNotification ve UIKeyboardDidShowNotification hem denedim özel İçin- (void)keyboardWillShow:(NSNotification *)n {
if (isKeyboardShowing)
return;
NSDictionary* userInfo = [n userInfo];
// get the size of the keyboard
CGSize keyboardSize = [[userInfo objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;
// Animate keyboard shift
[self.view layoutIfNeeded];
[UIView animateWithDuration:0.2f animations:^{
// some animation here
} completion:^(BOOL finished) {
if (finished)
isKeyboardShowing = YES;
}];
klavye boyutu döner klavyeler {320 , 0}. Artık klavyeler farklı yüksekliklere sahip olabileceğinden, klavye sunulduğunda kullanıcı arayüzünü değiştirmek için statik değerlere sahip olamıyorum.
ios8 ile ilgili bir sorun mu var? ve klavye yüksekliğini dinamik olarak almak için başka yöntemler var mı?
Düzenleme: Önceden
{name = UIKeyboardDidShowNotification; userInfo = {
UIKeyboardAnimationCurveUserInfoKey = 7;
UIKeyboardAnimationDurationUserInfoKey = "0.25";
UIKeyboardBoundsUserInfoKey = "NSRect: {{0, 0}, {320, 0}}";
UIKeyboardCenterBeginUserInfoKey = "NSPoint: {160, 568}";
UIKeyboardCenterEndUserInfoKey = "NSPoint: {160, 568}";
UIKeyboardFrameBeginUserInfoKey = "NSRect: {{0, 568}, {320, 0}}";
UIKeyboardFrameEndUserInfoKey = "NSRect: {{0, 568}, {320, 0}}";
}}
Teşekkür: Bu userinfo Dict olduğunu.