Macos 未申报出口

Macos 未申报出口,macos,interface-builder,nstextfield,iboutlet,Macos,Interface Builder,Nstextfield,Iboutlet,我正在编写一个Mac应用程序,我有一个文本字段,我想更新它的内容。在Interface Builder中,我控件将我的文本字段拖到AppDelegate.h中,它创建了行 @property (unsafe_unretained) IBOutlet NSTextField *cStatus; 现在,在我的AppDelegate.m中,我想在以下函数中编辑状态: static void Handle_DeviceMatchingCallback(void *inContext, IOReturn

我正在编写一个Mac应用程序,我有一个文本字段,我想更新它的内容。在Interface Builder中,我控件将我的文本字段拖到AppDelegate.h中,它创建了行

@property (unsafe_unretained) IBOutlet NSTextField *cStatus;
现在,在我的AppDelegate.m中,我想在以下函数中编辑状态:

static void Handle_DeviceMatchingCallback(void *inContext, IOReturn inResult, void *inSender, IOHIDDeviceRef inIOHIDDeviceRef){
   NSLog(@"\nDevice added: %p\nDevice count: %ld", (void*)inIOHIDDeviceRef, USBDeviceCount(inSender));
   [cStatus setString:@"Connected"];
}

但这给了我未声明变量cStatus的错误用法。我对XCode、InterfaceBuilder和Objective C非常陌生,一般来说,我如何引用这个文本字段?谢谢。

cStatus是一个属性,请尝试:

[self.cStatus setString:@"Connected"];

请发布AppDelegate.m中的代码,您引用的行不能在@implementation节中,它在implementation节中。实际上,我提到的这行代码是在一个C风格的函数中,因为我处理的是USB人机界面设备,它涉及C代码。这可能与问题有关吗?这是你的问题,你不能从这样的函数中引用self。您需要找到一种机制,让C函数调用回您的obj-C对象。因此,我可以编写一个改变文本视图内容的目标C函数,但我也不能从我的C函数中调用该函数。我通过引用我的自我对象解决了这个问题,如diciu的回答所述: