是否有可能将Finder功能嵌入到cocoa应用程序中,现在Finder本身就是可可(假设应用程序仅在雪豹中运行)?
我的意思是将文件浏览器窗格作为应用程序的一部分,实际浏览文件系统本身(在另一个窗格中编辑),但不编写Finder的所有功能.谢谢!
Finder本身只是一个应用程序.它不是组件库,也不是框架.虽然您无法在应用程序中"嵌入"Finder功能,但您可以影响Finder功能并调用Finder功能.
首先,您可以将文件夹操作附加到文件夹.当用户对文件夹的内容执行某些操作时会触发这些操作 - 例如,他们将文件放入其中.你在Finder中进行了设置.如果您想要与Finder交互,您应该学习一点AppleScript.
其次,由于Finder支持AppleEvents,因此您可以使用AppleScript影响Finder.看一下My First AppleScript和My First AppleScript Part II,看看如何做到这一点.以下是AppleScript概述中使用AppleScript编写脚本的更深入的信息.这是一些更多的Finder脚本.
第三,还支持使用Automator(Mac OS X 10.5)开发Finder为用户点击按钮执行复杂操作的方法.您还可以在Mac OS X 10.6("Snow Leopard")中开始在Automator中创建服务.请参阅Mac OS X 10.6中的Automator和Finder操作,了解后一种技术.
即使Finder窗口本身不是可嵌入的组件,如果您真的想要提供笔,打印,删除,复制等文件/文件夹,并从文件夹导航到文件夹,您可以开发一个简单的文件夹浏览器应用.
只要您没有将您的网站设置为模仿查找器或复制其所有功能,这只是我提到的必要基础知识,这不应该是一项大量的工作.
您需要知道如何编程Macintosh,但不仅仅是使用AppleScript.执行此操作的常规方法是学习Objective-C编程语言和Cocoa框架.您需要熟悉使用模型 - 视图 - 控制器架构编写应用程序.
您将创建一个名为MyFile的NSObject子类,以及一个名为MyFolder的集合类的子类.当应用程序创建浏览Windows时,每次应用程序激活(成为最前面的应用程序)时,您将刷新浏览菜单的内容.
您可以在菜单栏中放入一个菜单,其中包含命令:打开,打印,删除,复制.当用户执行其中一个命令时,您的应用程序会自行执行相应的操作或将请求发送给Finder.完成操作后,您将刷新当前显示的文件夹的浏览窗口,或者如果用户导航到其他文件夹,则刷新新显示的文件夹.
如果您熟悉设计模式,面向对象编程和一般框架 - 阅读Cocoa设计模式将极大地加速您的学习过程.
这些是您可以用来利用Finder的一些功能的各种技术.当您查看这些内容时,我建议您清楚地了解这会给您的应用程序用户带来哪些好处.写下此功能的总体目标是什么,以及您希望支持哪些命令,将使您更容易选择开发它的路径.
用户始终可以通过单击按钮单击Finder文件夹窗口,因为Finder始终在运行.因此,请避免简单地复制该功能.专注于为用户提供的好处.确保您确实处理了用户更新显示其他应用程序内容的文件夹的情况,然后切换回您的应用程序.
归档时间: |
|
查看次数: |
1151 次 |
最近记录: |