>我需要在XCode中开始使用哪种类型的项目模板?
>如何访问传入的文件? (这是通过Apple Events openfile传递的,对吧?)
我做了一点C,但没有在Mac上.链接赞赏,代码样本赞赏更多.
解决方法 您打算如何将文件传递给您的应用程序?如果是通过命令行,那么您将使用命令行工具模板并访问命令行参数,就像在任何POSIX平台(argc和argv)上一样.
如果您想使用Finder将文件传递给您的应用程序,例如,通过将文件拖放到应用程序图标上,那么您将使用Cocoa应用程序模板.
Info.pList文件包含您的应用程序配置和支持的文档类型,类似于Windows上的注册表.
>您可以通过项目设置的“信息”选项卡配置Info.pList(它是XCode文件导航器中的最顶层文件).单击右下角的“添加”按钮,然后选择“添加文档类型”以添加应用程序将接受的文档类型.要接受所有文档,请将文档名称设置为“全部”并将扩展名设置为*. More info is here.
>在Info.pList中添加一个lsuielement键,并将其值设置为YES以指示您的应用程序没有UI.此密钥在XCode中也显示为“Application is agent”. More info on LSUIElement is here.
>在MainMenu.xib中,您可以删除默认情况下存在的Window和Font Manager对象,因为您不需要它们.
>将AppDelegate.m文件重命名为AppDelegate.mm,以便将其编译为Objective-C.这将允许您在该文件中使用C代码.
>在applicationDIDFinishLaunching:delegate方法中,添加[NSApp terminate:nil];以便您的应用程序在完成其工作后立即退出.
将以下方法添加到AppDelegate.mm:
- (BOol)application:(NSApplication*)app openfile:(Nsstring *)filename{ NSLog(@"opening file %@",filename); char* cfilename = [filename UTF8String]; // Your C++ code goes here return YES;}
而已.剩下的就是你的C代码.您可以将任何C代码添加到您想要的AppDelegate.mm.例如.:
#include <string>#include <iostream>#include "MyCppfileProcessor.h"- (BOol)application:(NSApplication*)app openfile:(Nsstring *)filename{ std::string cfilename([filename UTF8String]); std::cout << "Processing file: " << cfilename << std::endl; MyCppfileProcessor fileProcessor; fileProcessor.processfile(cfilename); return YES;}
每当您将文档放入Finder中的应用程序图标时,此代码都将运行.
总结以上是内存溢出为你收集整理的如何在C中访问Apple Events“openFile”事件?全部内容,希望文章能够帮你解决如何在C中访问Apple Events“openFile”事件?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)