首先,在Cocos中我们如果要对当前系统的剪切板进行编辑的话,就必须先判断当前用的是什么系统
于是我们在预编译的时候先判断一下系统(本篇只讲iOS):
voID ClipboardHelper::copyStr(std::string str) {#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS) //iOS平台 iOSClipboard::copy(str);#elif (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID) //AndroID平台#endif}
可以看到我在这里调用了一个iOSClipboard类,下面我们来实现它。
首先我们来建一个OC文件,扩展名为.m,然后再建一个与它名字相同的.h文件。
重点来了,我们把.m文件的扩展名改为.mm,这样的话它就会变成一个C++与OC的混编文件,使C++可以调用到他。
现在.h代码如下:
#include <stdio.h>#include "cocos2d.h"class iOSClipboard { public: static voID copy(std::string str);};
.mm中这样实现:
#include "iOSClipboard.h"#import <Foundation/Foundation.h>voID iOSClipboard::copy(std::string str) { //把string类型转换成为char* char*p=(char*)str.data(); //把char*转换成OC的Nsstring Nsstring *nsMessage= [[Nsstring alloc] initWithCString:p enCoding:NSUTF8StringEnCoding]; //获得iOS的剪切板 UIPasteboard *pasteboard = [UIPasteboard generalPasteboard]; //改变剪切板的内容 pasteboard.string = nsMessage;}当然,在这里还可以加入更多的方法,来实现C++调用OC 总结
以上是内存溢出为你收集整理的Cocos2d-x中C++与OC的混编实现剪切板的复制粘贴全部内容,希望文章能够帮你解决Cocos2d-x中C++与OC的混编实现剪切板的复制粘贴所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)