我有一個NSTextView,我從NSTask輸出文本。除了滾動和選擇行爲之外,一切都按預期工作。NSTextView滾動行爲和選擇行爲
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];
}
}
你在文本視圖替換整個文本,每當你從任務輸出?請編輯問題併發布您用來從任務獲取輸出的代碼並將其添加到文本視圖中。 – 2011-11-06 00:31:34
已更新。根據NSTextView的文檔...如果在視圖中沒有選擇任何內容,它將追加下一個傳入的字符串。如果有選定的文本...它將取代它。 一切都按預期工作,除前面兩個問題外。 – crewshin