Cocoa 使阵列控制器成为按钮的目标

Cocoa 使阵列控制器成为按钮的目标,cocoa,xcode4.2,Cocoa,Xcode4.2,我正在阅读NSArrayController上的COCOA编程FOR MAC OS X(第三版)一章,它告诉我: 控件拖动以使阵列控制器成为“添加新员工”按钮的目标。设置要添加的操作: 但是,当我拖动阵列控制器时,它不会高亮显示,因此没有目标选项 如何在新的XCode 文件.h: // // Document.h // RaiseMan // // Created by user on 11/12/11. // Copyright (c) 2011 __MyCompanyName__

我正在阅读
NSArrayController
上的
COCOA编程FOR MAC OS X(第三版)
一章,它告诉我:

控件拖动以使阵列控制器成为“添加新员工”按钮的目标。设置要添加的操作:

但是,当我拖动
阵列控制器时,它不会高亮显示,因此没有目标选项

如何在新的
XCode

文件.h:

//
//  Document.h
//  RaiseMan
//
//  Created by user on 11/12/11.
//  Copyright (c) 2011 __MyCompanyName__. All rights reserved.
//

#import <Cocoa/Cocoa.h>

@interface Document : NSDocument
{
    NSMutableArray *employees;
}

@end
第h人:

//
//  Person.h
//  RaiseMan
//
//  Created by user on 11/12/11.
//  Copyright (c) 2011 __MyCompanyName__. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface Person : NSObject
{
    NSString *personName;
    float expectedRaise;
}

@property (readwrite, copy) NSString *personName;
@property (readwrite) float expectedRaise;

@end

伙计。。你在IB中做错了。这是错误的-

这些条目应在阵列控制器的属性检查器中创建-


更正后,您将能够正确设置目标:)

您是否也可以在某个地方上载代码。。。这样我们就可以检查了?你的代码看起来没问题。。。如果您在drop box或其他文件共享服务上有帐户,您可以上传它,以便我们重现您的问题并解决它吗?下面是该项目的一个摘要:您仍然无法设置目标?请检查并验证其他绑定!是的,当我试图瞄准阵列对象时,它不会突出显示。@ian:Miraj在回答中说的结果是,你使它不是一个阵列控制器。你把它变成了一个
person
对象,你想把它保存在数组控制器的数组中。这就是为什么不能将按钮连接到它:一个
没有任何动作。如果您已经清除了对象的自定义类,但它仍然不起作用,请编辑您的问题,以包括身份和属性检查器的更新屏幕截图,或代码的更新副本。Peter!成功了。如果你想把它变成一个答案,把它放在这里。
//
//  Person.h
//  RaiseMan
//
//  Created by user on 11/12/11.
//  Copyright (c) 2011 __MyCompanyName__. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface Person : NSObject
{
    NSString *personName;
    float expectedRaise;
}

@property (readwrite, copy) NSString *personName;
@property (readwrite) float expectedRaise;

@end
//
//  Person.m
//  RaiseMan
//
//  Created by user on 11/12/11.
//  Copyright (c) 2011 __MyCompanyName__. All rights reserved.
//

#import "Person.h"

@implementation Person

- (id) init
{
    self = [super init];
    expectedRaise = 5.0;
    personName = @"New Person";
    return self;    
}

- (void)dealloc
{
    [personName release];
    [super dealloc];
}

@synthesize personName;
@synthesize expectedRaise;

@end