macos - NSOpenPanel 总是尝试在单击时重命名文件

标签 macos cocoa foundation nsopenpanel

我使用 NSOpenPanel 让用户选择文件,如下所示:

  NSOpenPanel *openPanel = [[NSOpenPanel alloc] init];
    openPanel.canChooseFiles = YES;
    openPanel.allowsMultipleSelection = NO;
    openPanel.canChooseDirectories = NO;
    openPanel.allowedFileTypes = @[@"mov", @"mp4"];
    openPanel.allowsOtherFileTypes = NO;

    [openPanel beginWithCompletionHandler:^(NSInteger result) {
        if (result == NSFileHandlingPanelOKButton) {
            [self.editorWindowController loadVideoWithUrl:openPanel.URL];
        }

    }];

一切都很好,唯一的问题是当您单击文件时,光标设置为文本编辑模式,因此它会尝试重命名该文件。单击其他任何位置都会像平常一样选择该行。谢谢

最佳答案

问题很简单,但是很难找到。我有以下影响所有 NSTableView 的代码:

extension NSTableView {

    override open func validateProposedFirstResponder(_ responder: NSResponder, for event: NSEvent?) -> Bool {
        return true
    }
}

关于macos - NSOpenPanel 总是尝试在单击时重命名文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45394617/

相关文章:

swift - 文件 “xxx” 无法打开,因为没有这样的文件

ios - 访问发送者的哪些属性被传递到方法中

c# - 从 Mac 上的 Rider 附加到 Azure Functions 的调试器

python3错误,无法导入名称 'SimpleQueue'

macos - Powerlevel10k 的 transient 提示是否应该保留在窗口底部?

objective-c - 防止 Obj-C 框架类命名与 Swift 中的 NSUnit 冲突

cocoa - ARC 不兼容类型类型转换

ios - 为什么不保留 __block 变量(在非 ARC 环境中)?

swift - NSMenu 打开时出现 NSAlert 会导致 UI 卡住

cocoa NSView 未填充颜色