【发布时间】:2012-03-23 16:46:41
【问题描述】:
我一直在搜索很多论坛,但它仍然让我发疯。 我不明白如何从试图更改值的类“B”访问 IBOutlet 实例,例如类“A”的实例类型是 IBOutlet NSTextLabel *progressStatus,字符串值“Capturing”想要更改为“正在识别”。只能从 classA 自身的实例方法调用,不能从其他类调用。
@interface classA : NSView
{
NSTextField *progressStatus;
}
@property (assign) IBOutlet NSTextField *progressStatus;
-(void)recognizeStatus;
@end
#import "classA.h"
@implementation classA
@synthesize progressStatus;
-(void)awakeFromNib
{
[self recognizeStatus]; //successfully change the value inside progressStatus
}
-(void)recognizeStatus
{
[progressStatus setStringValue:@"Recognizing"];
NSLog(@"Progress Status : %@",progressStatus.stringValue);
}
- (void)captureOutput:(QTCaptureOutput *)captureOutput didOutputVideoFrame:(CVImageBufferRef)videoFrame withSampleBuffer:(QTSampleBuffer *)sampleBuffer fromConnection:(QTCaptureConnection*)connection
{
//code to convert videoFrame to IplImage type named frameImage
BOOL faceDetected = [classB faceDetection:frameImage];
}
@end
#import "classA.h"
@interface classB : NSObject
{
}
+(BOOL)faceDetection:(IplImage*)source;
@end
#import "classA.h"
#import "classB.h"
@implementation classB
+(BOOL)faceDetection:(IplImage*)source
{
classA *status = [[classA alloc] init];
[status recognizeStatus]; //no changes with the value inside progressStatus
//return bool type
}
@end
【问题讨论】:
-
//this is not worked!无法帮助我们了解您的问题。你预期会发生什么,你实际看到了什么?崩溃、编译器错误、UI 没有按照您的预期改变? -
它在 UI 中没有改变,即使在 B 类中一次没有调用方法识别状态。我希望成功调用识别状态方法,所以 A 类中的 NSTextField 将它的文本字段从“捕获" 到 "认识"。
标签: objective-c xcode macos cocoa iboutlet