안녕하세요 키보드에서 입력을 가져 오는 프로그램을 만들고 있는데 키보드에서 입력을 받아 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;
}
을 그리고 나서 getchar가가()는 일반 문자를 반환하기 때문에,
NSString * input = [NSString stringFromStandardInDelimitedByCharactersInSet:[NSCharacterSet newlineCharacterSet]];
은 (A unichar에를 사용에도 불구하고) 매우 잘 유니 코드 문자를 처리하지 않습니다 '과 같이 사용할 거라고. 그러나 기본 명령 줄 텍스트 입력의 경우 꽤 잘 작동합니다. 그러나 getchar()이 블로킹 호출이기 때문에 스레드가 실행되는 스레드가 차단된다는 경고를받습니다.
+0
objective-c가 scan과 같은 원시 문을 제공하지 않는 이유는 무엇입니까? – innuendoreplay
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. 키보드에서 "@"문자 입력을 잡는 방법
- 2. 한 줄씩 읽는 방법과 키보드에서 입력하는 방법?
- 3. 입력을 기다리지 않고 키보드에서 입력 받기
- 4. GNU Octave의 키보드에서 사용자 입력을 얻으려면 어떻게해야합니까?
- 5. jQuery : 키보드에서 자동 스캐너 입력을 듣고 있습니까?
- 6. 사용자 키보드 입력을 읽는 방법? 순간
- 7. 키보드에서 문자를 입력하지 않는 방법
- 8. 리스 피는 Clojure에서 키보드로 사용자 입력을 읽는 방법?
- 9. 키보드에서 막대를 만드는 방법
- 10. NumberFormatter - ObjectiveC
- 11. 소프트 키보드 입력을 잡는 방법
- 12. 키보드에서 키의 위치를 얻는 방법
- 13. 한 필드에서 포커스가없는 자바 스크립트로 HTML 페이지에서 입력을 읽는 방법
- 14. Java에서 명령 줄에서 사용자 입력을 읽는 올바른 방법
- 15. flex (어휘 스캐너)가 UTF-8 문자 입력을 읽는 방법?
- 16. 표준 입력을 C에서 EOF까지 문자열 변수로 읽는 방법?
- 17. InterfaceBuilder에서 이미지 시퀀스로드 -ObjectiveC
- 18. ObjectiveC 임의 숫자
- 19. MulticastDelegate in ObjectiveC
- 20. Shapefile with ObjectiveC
- 21. C++에서 웹캠의 입력을 읽는 방법은 무엇입니까?
- 22. Java System.in에서 입력을 읽는 데 문제가 발생합니다.
- 23. 캔버스로 키보드에서 입력 받기
- 24. Java에서 double로 읽는 방법은 무엇입니까?
- 25. 샘플 소프트 키보드에서 후보 항목을 커밋하는 방법?
- 26. Android 키보드에서 도메인 확장자를 변경하는 방법
- 27. 키보드에서 콤보 상자에서 값을 받아들이는 방법
- 28. ObjectiveC/iPhone의 TwitPic API 사용하기
- 29. iphone objectiveC 할당/해제 질문
- 30. Python의 AppKit 및 ObjectiveC 대리자
어떤 종류의 프로그램입니까? 아마도 필드가 자신의 입력을 처리하기 때문에 전통적인 GUI가 아닐 것입니다. 콘솔 앱? 또는 도구, la Photoshop을위한 키보드 단축키를 가진 무언가? 게임? –