嗨,我正在製作一個程序,從鍵盤獲取輸入,我想知道是否有任何方法從鍵盤獲取輸入並將其存儲在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