Как определить команду 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:,

Другие вопросы по тегам