我使用 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/