У меня есть 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];
}
}