嗨,我正在制作一个程序,从键盘获取输入,我想知道是否有任何方法从键盘获取输入并将其存储在NSString
对象中。如何从Objective-C中的键盘读取输入
2
A
回答
6
如果你正在做的这是一个命令行应用程序,那么这里的代码,我上周写来从命令提示符下一条线(我做了一个NSString
类):
+ (NSString *) stringFromStandardInDelimitedByCharactersInSet:(NSCharacterSet *)delimiters {
NSMutableString * string = [NSMutableString string];
unichar input = '\0';
while (input = getchar()) {
if ([delimiters characterIsMember:input]) { break; }
[string appendFormat:@"%C", input];
}
return string;
}
然后我倒是这样使用它:
NSString * input = [NSString stringFromStandardInDelimitedByCharactersInSet:[NSCharacterSet newlineCharacterSet]];
它不处理Unicode字符非常好(尽管使用单字符),因为getchar函数()只返回一个普通字符。但是,对于基本的命令行文本输入,它工作得很好。但是,需要警告的是,这会阻止执行它的线程(因为getchar()是阻塞调用)。
+0
为什么objective-c没有像c中的扫描一样使用本地语句? – innuendoreplay 2012-07-12 04:39:09
3
- (id)init {
if(!(self = [super init])){
return nil;
}
void (^monitorHandler)(NSEvent *);
monitorHandler = ^(NSEvent *theEvent){
switch ([theEvent keyCode]) {
case 123: // Left arrow
NSLog(@"Left behind.");
break;
case 124: // Right arrow
NSLog(@"Right as always!");
break;
case 125: // Down arrow
NSLog(@"Downward is Heavenward");
break;
case 126: // Up arrow
NSLog(@"Up, up, and away!");
break;
default:
break;
}
};
// Creates an object we do not own, but must keep track
// of so that it can be "removed" when we're done
[NSEvent addGlobalMonitorForEventsMatchingMask:(NSKeyDownMask) handler:monitorHandler];
return self;
}
1
为什么不呢?
NSFileHandle *kbd = [NSFileHandle fileHandleWithStandardInput];
NSData *inputData = [kbd availableData];
NSString *option = [[NSString alloc] initWithData:inputData encoding:NSUTF8StringEncoding];
相关问题
- 1. 从R键盘读取输入
- 2. Java直接从键盘读取输入
- 3. 如何使用Scanner类从键盘读取希腊文输入?
- 4. 如何逐行阅读并从键盘获取输入?
- 5. Lispy从Clojure中的键盘读取用户输入的方式?
- 6. Roku:如何阅读BrightScript中从键盘输入的文本?
- 7. 从python中读取键盘输入的原始数据
- 8. LWJGL不会读取键盘输入
- 9. 键盘无法读取输入值
- 10. 在流水线读取循环中读取键盘输入
- 11. JAVA读取字符输入 - '\ r'从键盘循环中
- 12. 获取从键盘(或自定义键盘)输入的文本
- 13. 如何从键盘输入红宝石?
- 14. 从键盘获取输入与画布
- 15. 从键盘读取多行作为输入
- 16. 流浪汉规定:从键盘读取线/标准输入
- 17. 截取OSX中的键盘输入
- 18. 在应用程序中读取硬件键盘的输入
- 19. 如何在ubuntu下使用nasm(assembly)从键盘读取单字符输入?
- 20. 试图从键盘输入
- 21. 在Scala中读取键盘输入并输入可见类型的字符
- 22. 从“输入”中读取“从”输入“
- 23. 键盘输入
- 24. 如何从无线键盘获取RAW USB输入
- 25. 如何在android键盘中输入Dot?
- 26. Visual Basic中读取从键盘
- 27. Java - 读取键盘输入并将其写入文本文件
- 28. 使用fgets()从键盘读取时从前面的输入中读取换行符
- 29. 键盘输入:如何分离从用户接收的键码
- 30. 如何阅读Winform上的键盘输入?
什么样的程序?大概不是传统的GUI,因为这些字段处理他们自己的输入。控制台应用程序?或者与键盘快捷键的工具,一个Photoshop?一个游戏? – 2009-11-29 23:01:24