有一个用objective-c编写的名为“PseudoTTY”的开源Xcode项目,我正在尝试找出如何以编程方式执行命令。当我编译应用程序时,我得到了一个漂亮的小终端窗口,它完全符合我的要求;除了我必须手动输入命令。
我想要做的是在终端中以编程方式执行命令,并能够用我的程序解析结果。
感兴趣的地方是:
- (void)keyDown:(NSEvent *)event
{
const char * typein = [[event characters] UTF8String];
[[pty_ masterFileHandle]
writeData:[NSData dataWithBytes:typein length:strlen(typein)]];
}
和
-(void) didRead: (NSNotification *)noty
{
NSData * data = [[noty userInfo] objectForKey:NSFileHandleNotificationDataItem];
if ([data length] == 0)
return; // end of file
NSString * str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
[self insertText:str];