Я пытаюсь добавить сочетания клавиш в свое приложение, и у меня возникла проблема с тем, что действие UIKeyCommand не вызывается.
Я получил UIViewController, который переопределяет KeyCommands.
- (BOOL)becomeFirstResponder
{
return YES;
}
- (NSArray<UIKeyCommand *> *)keyCommands
{
return self.keyCommandManager.keyShortcutsArray;
}
У меня также есть класс KeyCommandManager NSObject, который имеет два метода, один из которых устанавливает keyShortcutsArray в зависимости от состояния моего приложения, а другой - метод, который должен быть тигрирован UIKeyCommands.
- (void)setKeyShortcutsOfType:(ShortcutType)shortcutType
{
switch(shortcutType)
{
case PlaybackPreviewShortcut:
self.keyShortcutsArray = @[[UIKeyCommand keyCommandWithInput:@" " modifierFlags:0 action:@selector(keyShortcutActions:) discoverabilityTitle:@"Toggle playback preview"]];
break;
default:
self.keyShortcutsArray = @[];
break;
}
- (void)keyShortcutActions:(UIKeyCommand)sender
{
NSLog(@"#### This method is not being called by the space key shortcut");
}
В настоящее время при нажатии клавиши метод переопределения KeyCommand получает правильный массив. Однако селектор этих клавиш не работает, и метод keyShortcutActions
не вызывается.