我正在尝试向NSArrayController类添加新的类别:它可以选择第一项和最后一项。我这样做了:
#import "NSArrayController+selectEnds.h"
@implementation NSArrayController (selectEnds)
- (void)selectFirst:(id)sender {
if (self.arrangedObjects !=nil){ BOOL ignore = [self setSelectionIndex:0];}
}
- (void)selectLast:(id)sender {
if (self.arrangedObjects !=nil){
NSUInteger lastItem = [self.arrangedObjects count]-1;
BOOL ignore = [self setSelectionIndex:lastItem];}
}
@end我没有得到错误,但是我想把这个对象放在IB中,使用一个蓝色的立方体,并将按钮绑定到它的"selectFirst“和"selectLast”方法。
但是我有点迷惑了:从哪个标准对象开始呢?一个标准的ArrayController?然后,选择哪个类名来列出新方法呢?
谢谢你的帮助…
发布于 2012-06-15 07:34:34
由于您没有显示NSArrayController+selectEnds.h (这是IB实际查看的内容),只显示了NSArrayController+selectEnds.m,所以很难确切地知道您弄错了什么,但有两个合理的猜测。
首先,如果希望这些新方法成为类NSArrayController的接口的一部分,则必须将它们添加到接口声明中,而不仅仅是添加到实现中。
其次,如果您希望Xcode (或IB)知道这些新方法是操作,则必须这样标记它们:在接口中,不要将它们标记为普通的空方法,而是将它们标记为IBAction方法。(在实现中,您可以选择其中任何一个;这无关紧要。)
因此,NSArrayController+selectEnds.h应该是:
#import <Cocoa/Cocoa.h>
@interface NSArrayController (selectEnds)
- (IBAction)selectFirst:(id)sender;
- (IBAction)selectLast:(id)sender;
@endhttps://stackoverflow.com/questions/11042287
复制相似问题