Я разрабатываю пользовательскую клавиатуру iOS 8 и столкнулся со следующей проблемой:
Метод - (void) viewDidLayoutSubviews{}
из подкласса UIInputViewController
вызывается каждый раз, когда пользователь касается клавиатуры (касание, свайп и т. д.). Я хотел бы избежать этого, нет необходимости вызывать его, когда пользователь касается клавиатуры.
Также я обнаружил, что если я прокомментирую следующие строки, viewDidLayoutSubviews
больше не будет вызываться, когда пользователь взаимодействует с клавиатурой:
NSLayoutConstraint *keyboardButtonLeftSideConstraint = [NSLayoutConstraint constraintWithItem:self.customKeyboardView attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeLeft multiplier:1.0 constant:0.0];
NSLayoutConstraint *keyboardButtonBottomConstraint = [NSLayoutConstraint constraintWithItem:self.customKeyboardView attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeBottom multiplier:1.0 constant:0.0];
[self.view addConstraints:@[keyboardButtonLeftSideConstraint, keyboardButtonBottomConstraint]];
Но я не могу избавиться от этих ограничений, потому что они нужны мне для изменения высоты клавиатуры. Как я мог это решить?