NSOpenPanel 奇数浮动 Header

NSOpenPanel Odd Floating Header

我在项目中看到奇怪的 NSOpenPanel 显示。 header 列(排序)是浮动的,而不是停留在视图的顶部。这是我用来展示面板的代码:

NSOpenPanel *panel = [NSOpenPanel openPanel];
NSArray *fileTypes = @[(NSString *)kUTTypeJPEG, (NSString *)kUTTypePNG, (NSString *)kUTTypeBMP, (NSString *)kUTTypeTIFF];
[panel setCanChooseDirectories:NO];
[panel setAllowsMultipleSelection:NO];
[panel setAllowedFileTypes:fileTypes];
NSInteger i = [panel runModal];

如果我在一个全新的项目中使用相同的代码,它会正确显示。由于我正在展示一个系统面板,我看不出我的应用程序如何导致这种奇怪的显示,但我很开放。对于我可能会在我的应用程序中查找可能导致此行为的内容,有人有任何建议吗?

有问题的应用程序的目标是 10.10。

我很确定你在这里寻找的答案是最终你想使用基于块的完成处理程序调用 api 而不是 runModal。当涉及到 NSOpen/SavePanel 和沙盒应用程序时,苹果有意或无意地以各种方式破坏了遗留的 runModal api。