我如何设置在NSSavePanel选择的文件名的一部分?我只想要的文件名选择不文件扩展名。

下面是我注意到了。如果我setAllowedFileTypes:为保存面板则只有文件名被选中,但没有文件扩展名。然而,如果我不设置允许的文件类型,则文件扩展名与文件名一起选择。

我不希望使用setAllowedFileTypes但我还是想这样就不会选择文件扩展名来控制选择。可以在做什么?

有帮助吗?

解决方案

我计算出来。我以前不知道这一点,但每个窗口都有一个字段编辑器,如果正在编辑包含文本的一些对象。作为这种保存面板具有一个因为文件名称字段正在被编辑。字段编辑只是一个NSTextView并因此具有方法setSelectedRange :.所以我用这个知识,这里的解决方案。只需拨打这个就NSSavePanel要选择只是文件名任意时间。

NSText* editor = [savePanel fieldEditor:NO forObject:nil];
if (editor) {
    NSString* nameFieldString = [savePanel nameFieldStringValue];
    NSString* nameFieldExt = [nameFieldString pathExtension];
    if (nameFieldExt != nil) {
        NSInteger newLength = [nameFieldString length]-[nameFieldExt length]-1;
        [editor setSelectedRange:NSMakeRange(0, newLength)];
    }
}

其他提示

如果你只是想保存面板选中文件名,集

allowedFileTypes

要包括缺省文件类型指定在

nameFieldStringValue

您可能还需要指定。

allowsOtherFileTypes = true;

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top