2

NSSavePanelで選択されているファイル名の部分を設定するにはどうすればよいですか?ファイル名だけを選択し、ファイル拡張子は選択しないでください。

これが私が気づいたことです。保存パネルにSetAllowedFileTypes:を設定すると、ファイル名のみが選択され、ファイル拡張子は選択されません。ただし、許可されるファイルタイプを設定しない場合は、ファイル名とともにファイル拡張子が選択されます。

setAllowedFileTypesを使用したくないが、ファイル拡張子が選択されないように選択を制御したい。それはできますか?

4

2 に答える 2

1

私はそれを考え出した。私はこれを前に知りませんでしたが、テキストを含むオブジェクトが編集されている場合、すべてのウィンドウにフィールドエディタがあります。そのため、ファイル名フィールドが編集されているため、保存パネルに1つあります。フィールドエディタは単なる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)];
    }
}
于 2010-04-18T21:56:29.173 に答える
1

保存パネルでファイル名を強調表示するだけの場合は、

allowedFileTypes

で指定したデフォルトのファイルタイプを含める

nameFieldStringValue

指定することもできます。

allowsOtherFileTypes = true;

于 2019-07-19T11:11:42.690 に答える