gpt4 book ai didi

Cocoa 服务编程 - 如何识别所选项目是 NSFilenamesPboardType 设置为发送类型的文件夹还是文件?

转载 作者:行者123 更新时间:2023-12-03 16:44:55 28 4
gpt4 key购买 nike

我对服务菜单验证有一些疑问。我想根据是否在 Finder 中选择文件或文件夹来启用我的应用程序提供的不同服务。

我已将 NSFilenamesPboardType 设置为服务的发送类型。我已经完成了 - (id)validRequestorForSendType:(NSString *)sendType returnType:(NSString *)returnType 方法,但我的问题是那里的验证似乎是基于 sendType 和返回类型完成的。就我而言,选定的文件和文件夹粘贴板类型是相同的,并且在验证过程中我无法确定 Finder 中的选定项目是文件还是文件夹(这是在调用实际服务之前,即在服务菜单被调用时)向用户显示)?

所以我的问题是,有什么方法可以获取有关 Finder 中所选项目的一些信息,并根据有关该项目的一些信息而不是发送和发送的基本验证来验证我的应用程序提供的不同服务菜单。返回类型?

我无法找到任何方法来执行此操作,但 Snow Leopard 中的“文件夹操作”服务仅针对文件夹启用,因此可以完成此操作。我做了一个/System/Library/CoreServices/pbs -dump_pboard ,它使用 NSFilenamePBoardType 还设法仅激活文件夹。

提前感谢您的帮助。

最佳答案

要区分文件和文件夹,您可以在 NSFileManager 中使用以下内容:

fileExistsAtPath:isDirectory:

http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSFileManager_Class/Reference/Reference.html#//apple_ref/occ/instm/NSFileManager/fileExistsAtPath:isDirectory :

但是您需要有路径字符串。

关于Cocoa 服务编程 - 如何识别所选项目是 NSFilenamesPboardType 设置为发送类型的文件夹还是文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2430382/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com