文件名的NSSavePanel选择部分
-
27-09-2019 - |
题
我如何设置在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;
不隶属于 StackOverflow