标签是一个long
. NSSliderCells 从 NSActionCell 继承它们的标签,因此有一个与使用 NSSliderCell 的 NSSlider 分开的标签,它从 NSControl 继承其标签。在自定义 NSSliderCell 类[self tag]
中,返回 XIB 中的 sliderCell 的标签集。
这是自定义滑块单元格类的标题:
#import <AppKit/AppKit.h>
@interface EWSliderCell : NSSliderCell
@end
这是整个班级本身:
#import "EWSliderCell.h"
@implementation EWSliderCell
-(NSRect)rectOfTickMarkAtIndex:(NSInteger)index {
static BOOL reportedTag;
if (!reportedTag) {
long myTag = [self tag];
NSLog(@"myTag=%ld", myTag);
reportedTag = TRUE;
}
return CGRectMake(0.0, 0.0, 0.0, 0.0); // remove the tick marks from the slider
}
@end
这确实执行并报告了正确的标签。
我无法复制您报告的错误消息。但是,如果我(错误地)写myTag = [EWSliderCell tag];
了,那么我会看到消息“没有已知的选择器'标签'的类方法。tag
不是类方法,它是一个实例方法。(这是正确的词吗?)你能发布产生的代码吗?错误信息?