我正在尝试创建一个小dll,以便我可以从Unity应用程序中读取粘贴板。
我有以下代码:
#define MakeStringCopy( _x_ ) ( _x_ != NULL && [_x_ isKindOfClass:[NSString class]] ) ? strdup( [_x_ UTF8String] ) : NULL
#define GetStringParam( _x_ ) ( _x_ != NULL ) ? [NSString stringWithUTF8String:_x_] : [NSString stringWithUTF8String:""]
//[UIPasteboard generalPasteboard].string = @"the text to copy";
//NSString *whatsOnThePasteboard = [UIPasteboard generalPasteboard].string;
//send clipboard to unity
extern "C" const char * _importString()
{
NSString *result = [UIPasteboard generalPasteboard].string;
return MakeStringCopy(result);
}
//get clipboard from unity
extern "C" void _exportString(const char * eString)
{
[UIPasteboard generalPasteboard].string = GetStringParam(eString);//@"the text to copy";
}
但是我对UIPasteboard有以下错误
使用未声明的'UIPasteboard';你的意思是 'NSPasteboard'?
我查看了所需的框架,但无法看到UIKit.framework将其添加到我的包中。所以我的问题是:
如果我将其更改为NSPasteboard,它仍然可以在我的iPad上按预期工作吗?从我读到的UIpasteboard是针对iOS设备和NSPasteboard是针对OSX设备,还是我完全错误的假设?
答案 0 :(得分:0)
不,iOS需要UIPasteboard
,NSPasteboard
适用于OSX。
如果您已下载iOS SDK UIKit.framework
,请访问:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk/System/Library/Frameworks
请记住在路径中更改SDK版本。