簡體   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