繁体   English   中英

Objc scriptingbridge如何在特定文件夹中打开新的Finder窗口

[英]Objc scriptingbridge how open new Finder window in a specific folder

我想在特定位置打开一个特定大小的新Finder窗口,并显示一个特定文件夹。

在ScriptingBridge(XCode 6,Mavericks 9.4)中,我可以打开一个新的Finder窗口,并弄清楚了如何读取它打开的文件夹的URL。 但我真的在为如何将文件夹设置为其他内容而苦苦挣扎。

我试图给窗口分配一个用“ URL”属性初始化的“目标” SBObject。 但网址属性是只读的,尽管“目标”似乎不是。 我使用“ get”来确保有一个FinderFolder对象和FinderFinderWindow对象。

我尝试使用带有URL键的属性字典并创建一个“文件夹”。

FinderFolder *folder = [[[_finder classForScriptingClass:@"folder"] alloc]
    initWithProperties:dict];
[[_finder folders] addObject:folder]; 

我已经阅读了Apple文档,并四处寻找示例,但是找不到分配文件夹路径的人的实例。

// open folder "Documents" of home folder
FinderFolder *theHomeFolder = [theFinder home];
NSLog(@"theHomeFolder: %@",theHomeFolder);

SBElementArray * theHomeFolderFolders = [theHomeFolder folders];
NSLog(@"theHomeFolderFolders: %@",theHomeFolderFolders);

FinderFolder *theDocsFolder = [theHomeFolderFolders objectWithName:@"Documents"];
NSLog(@"theDocsFolder: %@",theDocsFolder);

[theDocsFolder openUsing:nil withProperties:nil];
FinderFinderWindow * docsFolderWindow = (FinderFinderWindow*) [theDocsFolder containerWindow];
NSLog(@"docsFolderWindow: %@",docsFolderWindow);

docsFolderWindow = [docsFolderWindow get];
NSLog(@"docsFolderWindow: %@",docsFolderWindow);

// change its bounds
docsFolderWindow.bounds = NSMakeRect(64., 64., 800, 600.);

// other fun stuff…
[docsFolderWindow setCurrentView:FinderEcvwListView];
[[docsFolderWindow iconViewOptions] setArrangement:FinderEarrArrangedByName];
[docsFolderWindow cleanUpBy:@selector(name)];

docsFolderWindow.toolbarVisible = NO;
docsFolderWindow.statusbarVisible = NO;
docsFolderWindow.sidebarWidth = 0;

有几种不同的方法。 其他答案有效,或者您可以显式创建新的Finder窗口并设置其target属性:

NSURL *u = [NSURL fileURLWithPath:@"/tmp"];
FinderFinderWindow *w = [[[theFinder classForScriptingClass:@"Finder window] alloc] init];
[[theFinder finderWindows] addObject:w];
[w setTarget:u];

您还可以将其设置为引用Finder项的theDocsFolder ,例如另一个答案中的theDocsFolder

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM