タグはlong
. NSSliderCells は NSActionCell からタグを継承するため、NSControl からタグを継承する NSSliderCell を使用する NSSlider とは別のタグを用意します。カスタム 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
クラス メソッドではなく、インスタンス メソッドです。(正しい言葉ですか?) 生成されたコードを投稿できますか? 」というメッセージが表示されます。エラーメッセージ?