2016-11-02 6 views
0

NSTextFieldのサブクラスを作成しました。 コードで使用すると問題はなく、すべてうまくいき、意図したとおりに動作します。 Interface Builder経由で使用する場合、コンポーネントは表示されません。私は2つのコンポーネント、インターフェイスビルダーによってコードによって1つずつを作成する場合NSTextFieldサブクラスはInterface Builder経由で表示されません

-(instancetype)initWithFrame:(NSRect)frameRect{ 

self = [super initWithFrame:frameRect]; 

if(self){ 

    [self setAlignment:NSTextAlignmentCenter]; 
    [self setBackgroundColor:[NSColor blueColor]]; 
    [self setBezeled:NO]; 
    [self setEditable:NO]; 
    [self setSelectable:NO]; 
    [self.cell setUsesSingleLineMode:YES]; 

} 

return self; 

} 

-(instancetype)initWithCoder:(NSCoder *)coder{ 

self = [super initWithCoder:coder]; 

if(self){ 
    NSLog(@"initWithCoder"); 
    [self setAlignment:NSTextAlignmentCenter]; 
    [self setBackgroundColor:[NSColor redColor]]; 
    [self setBezeled:NO]; 
    [self setEditable:NO]; 
    [self setSelectable:NO]; 
    [self.cell setUsesSingleLineMode:YES]; 
} 

return self; 


} 

は、例えば、私はblueBackgroundで、唯一の第一の成分を見ることができます:

はここにサブクラスのための私のINITです。

アイデア? ありがとう

+0

"initWithCoder"はログに記録されていますか? IBにテキストフィールドをどのように追加しましたか?あなたは価値を設定しましたか? – Willeke

+0

InitWithCoderが記録されます。 私はカスタムビューを追加し、私はアイデンティティインスペクタのクラスを変更して、私は同じクラスのプロパティに参照コンセントを追加します。 少なくとも私は赤いフレームを見ていると思う。しかし、いいえ。私は何も見ません。 – Talkanian

+0

'NSTextField'を追加し、クラスを変更します。 – Willeke

答えて

1

IBでAppkitクラスのサブクラスを追加するときは、最も近いスーパークラスを追加し、IDインスペクタでクラスを変更します。したがって、NSTextFieldのサブクラスを作成した場合は、NSTextFieldを追加してクラスを変更してください。

関連する問題