我想通了。我之前不知道这一点,但如果某个包含文本的对象正在编辑中,那么每个窗口都有一个字段编辑器。因为这样的保存面板有一个,因为正在编辑文件名字段。一个字段编辑器只是一个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)];
}
}