gpt4 book ai didi

objective-c - TableView 中的 QLPreviewPanel 存在问题 : "has no controller"

转载 作者:行者123 更新时间:2023-12-03 16:40:47 26 4
gpt4 key购买 nike

我想在 QLPreviewPanel 中显示 TableView 中的 url,但出现此错误:

[QL] QLError(): -[QLPreviewPanel reloadData] called while the panel has no controller - Fix this or this will raise soon.

我的表 Controller 已经符合这两个协议(protocol):QLPreviewPanelDataSource、QLPreviewPanelDelegate。

如何将[QLPreviewPanel sharedPreviewPanel]的 Controller 设置为我的表格 Controller ?

- (void)didPressSpacebarForTableView:(NSTableView *)tableView {
NSLog(@"Spacebar clicked");
if ([QLPreviewPanel sharedPreviewPanelExists] && [[QLPreviewPanel sharedPreviewPanel] isVisible]) {
[[QLPreviewPanel sharedPreviewPanel] orderOut:nil];
} else {
[[QLPreviewPanel sharedPreviewPanel] reloadData];
[[QLPreviewPanel sharedPreviewPanel] makeKeyAndOrderFront:nil];
}
}

- (NSInteger)numberOfPreviewItemsInPreviewPanel:(QLPreviewPanel *)panel {
return [[(PasteboardItem *)[[_arrayController arrangedObjects] objectAtIndex:[_tableView selectedRow]] filenames] count];
}


- (id<QLPreviewItem>)previewPanel:(QLPreviewPanel *)panel previewItemAtIndex:(NSInteger)index {
NSString *path = [(PasteboardItem *)[[_arrayController arrangedObjects] objectAtIndex:[_tableView selectedRow]] filenames][index];
NSURL *url = [NSURL fileURLWithPath:path];
return url;
}

- (BOOL)acceptsPreviewPanelControl:(QLPreviewPanel *)panel {
return YES;
}

-(void)beginPreviewPanelControl:(QLPreviewPanel *)panel {
panel.dataSource = self;
panel.delegate = self;
}

- (void)endPreviewPanelControl:(QLPreviewPanel *)panel {
panel.dataSource = nil;
panel.delegate = nil;
}

最佳答案

我在这里找到了解决方案:QuickLook consumer as a delegate from an NSViewController 。就我而言,我需要在面板 Controller (NSWindowController) 中添加这 3 行代码,其中我有 TableView Controller 的实例。

- (void)awakeFromNib { 
NSResponder * aNextResponder = [self nextResponder];
[self setNextResponder:_tableController];
[_tableController setNextResponder:aNextResponder];
}

关于objective-c - TableView 中的 QLPreviewPanel 存在问题 : "has no controller",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28399080/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com