我正在尝试从mac os终端中的用户请求输入。我的程序是用c编写的,我希望有一个可点击的文本,允许用户点击是或否让我的c程序执行或不执行某个动作/功能。
我想举例来看:
您想验证您的电子邮件吗? [是] [否]
然后我将能够单击是或否(所以基本上是/否是文本像按钮一样)。
我没有找到任何可以回答我的问题的问题。也许有一些mac os特定功能实现,我可以在我的c程序中调用。
非常感谢您的帮助!
部分答案
要在终端中获得鼠标单击,您必须在Cmd-R的Terminal.app中启用“鼠标报告”。 (如果您不想依赖它,可以从Terminal.app中启动xterm。)
然后,您可以使用此序列将鼠标点击转换为击键:
echo -e "\033[?1000h"
只需发出它,然后单击终端窗口。要再次禁用它,请使用:
echo -e "\033[?1000l"
这个CSI序列有这样的格式:ESC [?数字l / h
更多细节可以在这里找到:XTerm Control Sequences
请注意,Terminal.app不支持每个xterm功能。
用于启用的Quick'n'dirty C代码:
#include <unistd.h>
#define MR "\033[?1000h"
int main() { write(1,MR,sizeof(MR)-1);return 0;}
“鼠标击键”可以从STDIN读取为其他击键。
替代解决方案方法
除了C,您还可以使用AppleScript。