如何将 NSOpenPanel 中的选择限制为特定文件名?

How to limit the choice in an NSOpenPanel to a specific filename?

显示 NSOpenPanel 时,有没有办法将文件的选择限制为具有特定文件名的文件?我知道您可以通过设置 openPanel.allowedFileTypes 来限制文件类型,但是对于特定功能,用户需要 select 已知具有特定名称的文件 (diallist.csv).

我知道我可以在面板关闭后进行检查,但对我来说,首先不让用户选择不可接受的文件对我来说更友好。

您可以为 NSOpenPanel 设置委托:https://developer.apple.com/reference/appkit/nsopensavepaneldelegate

作为委托人,您可以验证 and/or 启用某些 URL:

- (BOOL)panel:(id)sender shouldEnableURL:(NSURL *)url; 要么 - (BOOL)panel:(id)sender validateURL:(NSURL *)url error:(NSError * _Nullable *)outError;