首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSArrayController添加类别

NSArrayController添加类别
EN

Stack Overflow用户
提问于 2012-06-15 06:35:42
回答 1查看 101关注 0票数 0

我正在尝试向NSArrayController类添加新的类别:它可以选择第一项和最后一项。我这样做了:

代码语言:javascript
复制
#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?然后,选择哪个类名来列出新方法呢?

谢谢你的帮助…

EN

回答 1

Stack Overflow用户

发布于 2012-06-15 07:34:34

由于您没有显示NSArrayController+selectEnds.h (这是IB实际查看的内容),只显示了NSArrayController+selectEnds.m,所以很难确切地知道您弄错了什么,但有两个合理的猜测。

首先,如果希望这些新方法成为类NSArrayController的接口的一部分,则必须将它们添加到接口声明中,而不仅仅是添加到实现中。

其次,如果您希望Xcode (或IB)知道这些新方法是操作,则必须这样标记它们:在接口中,不要将它们标记为普通的空方法,而是将它们标记为IBAction方法。(在实现中,您可以选择其中任何一个;这无关紧要。)

因此,NSArrayController+selectEnds.h应该是:

代码语言:javascript
复制
#import <Cocoa/Cocoa.h>
@interface NSArrayController (selectEnds)
- (IBAction)selectFirst:(id)sender;
- (IBAction)selectLast:(id)sender;
@end
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11042287

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档