<分区>
我需要一个函数,比如 Objective C 或 Swift 中的旧“getch()”,可以从键盘读取一个字符而不需要回显,并且不需要在键入字符后按回车键以使函数继续.
据我所知,这只有在对命令行工具进行编程时才有趣,可能是为了进行选择或编写编辑器。
<分区>
我需要一个函数,比如 Objective C 或 Swift 中的旧“getch()”,可以从键盘读取一个字符而不需要回显,并且不需要在键入字符后按回车键以使函数继续.
据我所知,这只有在对命令行工具进行编程时才有趣,可能是为了进行选择或编写编辑器。
最佳答案
这是用 Swift 编写的用于 Swift 的函数:
func GetKeyPress () -> Int
{
var key: Int = 0
var c: cc_t = 0
var cct = (c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c) // Set of 20 Special Characters
var oldt: termios = termios(c_iflag: 0, c_oflag: 0, c_cflag: 0, c_lflag: 0, c_cc: cct, c_ispeed: 0, c_ospeed: 0)
tcgetattr(STDIN_FILENO, &oldt) // 1473
var newt = oldt
newt.c_lflag = 1217 // Reset ICANON and Echo off
tcsetattr( STDIN_FILENO, TCSANOW, &newt)
key = Int(getchar()) // works like "getch()"
tcsetattr( STDIN_FILENO, TCSANOW, &oldt)
return key
}
关于swift - Xcode Swift 命令行工具从键盘读取 1 个字符而无需回显或需要按回车,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25551321/
相关文章:
ios - 由于未捕获的异常 'NSInternalInconsistencyException' 错误而终止应用程序
perl - 使用 Term::Readline-readline 停止无限 while 循环的正确方法是什么?
ios - 为什么从 FileManager 数据初始化的 UIImages 有错误的比例?
swift - 将 MKMapRect.origin 转换为经度和纬度
iphone - paymentWithProductIdentifier 的替代解决方案是什么?
ios - 使用 UIGestureRecognizer 旋转瓶子