Как определить команду C в моем приложении (Swift)?
У меня есть приложение-калькулятор, написанное на Swift, и оно полностью совместимо с пользовательскими сочетаниями клавиш. Я пытаюсь вызвать метод, когда пользователь нажимает Ctrl + C, однако всякий раз, когда я пытаюсь назначить следующий пользовательский ярлык, он просто не работает:
UIKeyCommand(input: "c", modifierFlags: [.command], action: #selector(commandCAction))
commandCAction
метод никогда не вызывается, в отличие от других ярлыков. Я полагаю, это связано с тем, что Apple зарезервировала этот ярлык. Существуют ли какие-либо наблюдатели или методы, которые я могу использовать, чтобы определить, когда пользователь нажимает клавиши Command + C на физической клавиатуре?
2 ответа
Я обнаружил проблему, по какой-то причине это не работает на моем симуляторе:
UIKeyCommand(input: "c", modifierFlags: [.command], action: #selector(commandCAction))
Однако когда я попробовал на физическом устройстве, это сработало! Так что это решение для кого-то с той же проблемой, что и я.
Документация для UIKeyCommand
говорит: "Ключевые команды, которые сопоставляются с известными системными событиями (такими как вырезание, копирование и вставка), автоматически направляются в соответствующие методы респондента".
Ваш лучший подход может заключаться в создании подкласса элементов пользовательского интерфейса, где вы хотите перехватить команду и реализовать свой собственный copy:
,