Symfony:如何在 QuestionHelper 中启用箭头键(左/右)?

问题描述 投票:0回答:1

我的 Symfony 3 项目中有一个自定义命令。

此命令询问一些问题,例如 Bundle Name.

    $io = new SymfonyStyle($input, $output);
    $question = new Question('Please enter the name of your bundle: ', 'AppBundle');
    $bundle = $io->askQuestion($question);

此代码运行良好,但如果用户输入错误,左箭头不起作用。
左箭头给出 ^[[D 和右 ^[[C

有没有办法在用户按下箭头键时移动光标?

symfony command arrow-keys
1个回答
0
投票

您可以通过使用 Symfony 样式 (https://symfony.com/doc/current/console/style.html) 来做到这一点,然后您可以启用箭头键支持并在自定义命令中移动光标。

    $io = new SymfonyStyle($input, $output);
    
    //This is where you enable arrow key support and move the cursor
    $io->getInput()->setInteractive(true);
    $io->setInputStty(['echo', 'icanon', 'opost', 'onlcr']);
    
    $question = new Question('Please enter the name of your bundle: ', 'AppBundle');
    $bundle = $io->askQuestion($question);
    
    // Reset the input config
    $io->getInput()->setInteractive(false);
    $io->setInputStty([]);
    
© www.soinside.com 2019 - 2024. All rights reserved.