我想通了。我之前不知道這一點,但如果某個包含文本的對象正在編輯中,那麼每個窗口都有一個字段編輯器。因爲這樣的保存面板有一個,因爲正在編輯文件名字段。一個字段編輯器只是一個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)];
}
}