Помещенный 'stdout' в 'NSTextView' при выполнении команды

Я создаю Приложение Какао, которое должно будет работать rails команда. Эта команда генерирует вывод и передает его потоком к stdout. Я хочу показать этот вывод пользователю в NSTextView (таким образом, basicly передают потоком stdout к NSTextView). Мое приложение не должно 'зависать', когда команда работает (например, git команда занимает много времени, чтобы закончить загружать). Я действительно не забочусь о том, как я должен выполнить команду, пока я могу установить рабочий каталог.

Используя платформу Ruby для Какао не опция, поскольку я также должен сделать это для нерубиновых команд как git.

Кто-либо может помочь мне?Спасибо

1
задан 24 April 2010 в 12:09
поделиться

1 ответ

Вам нужно будет использовать класс NSTask .

NSTask       * task;
NSPipe       * pipe;
NSFileHandle * fileHandle;

task       = [ [ NSTask alloc ] init ];
pipe       = [ NSPipe pipe ];
fileHandle = [ pipe fileHandleForReading ];

[ fileHandle readInBackgroundAndNotify ];
[ task setLaunchPath: @"/bin/ls" ];
[ task setStandardOutput: pipe ];
[ task setStandardError: pipe ];
[ task launch ];

Затем вы можете использовать дескриптор файла для получения стандартного вывода.
Рабочий каталог можно установить с помощью метода setCurrentDirectoryPath .
Аргументы можно установить с помощью метода setArguments .

2
ответ дан 3 September 2019 в 01:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: