У меня есть NSTextView, в котором я вывожу текст из NSTask. Все работает так, как ожидалось, за исключением поведения прокрутки и выбора.
1: Если я попытаюсь прокрутить вверх, положение моей прокрутки мгновенно вернется к нижней части после того, как я отпущу. Любые идеи? Я просмотрел довольно много документации по этому поводу и ничего не могу найти об этом.
2: Если я выбираю текст, он удаляет его. Я просто хочу выбрать, чтобы я мог копировать и вставлять. На этом тоже проиграл.
Любые советы или указатели будут приветствоваться. Спасибо.
- (id)init
{
[super init];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(readPipe:)
name:NSFileHandleReadCompletionNotification
object:nil];
return self;
}
- (void)kicked
{
task = [[NSTask alloc] init];
[task setLaunchPath:[self.kickLocationTextField stringValue]];
[task setArguments:kickBuild];
NSPipe *pipe = [[NSPipe alloc] init];
fileHandle = [pipe fileHandleForReading];
[fileHandle readInBackgroundAndNotify];
[task setStandardOutput:pipe];
[task setStandardError:pipe];
[task launch];
[task release];
[pipe release];
}
- (void)readPipe:(NSNotification *)notification
{
NSData *data;
NSString *text;
if( [notification object] != fileHandle )
{
return;
}
data = [[notification userInfo] objectForKey:NSFileHandleNotificationDataItem];
text = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
[nsTaskOutput insertText:text];
[text release];
if (data != 0)
{
[fileHandle readInBackgroundAndNotify];
}
}