1

keyboard入力ビューとして設定するクラスがあります

NSArray *bundle = [[NSBundle mainBundle] loadNibNamed:@"FormulaKeyboard" owner:self options:nil];

for (id object in bundle) {
    if ([object isKindOfClass:[FormulaKeyboard class]])
        keyboard = (FormulaKeyboard *)object;
}   

キーボードクラス(NSObjectのサブクラス)のinitメソッドで、nibを使用して作成されたいくつかのUIButtonのタイトルテキストを設定しようとしています。

- (id)initWithCoder:(NSCoder *)coder {
    self = [super initWithCoder:coder];
    if (self) {

    NSArray *keyboardElements =  [delegate provideKeyElements];
    [element1 setTitle:[keyboardElements objectAtIndex:0]  forState: UIControlStateNormal];
    [element2 setTitle:[keyboardElements objectAtIndex:1]  forState: UIControlStateNormal]; 
    [element3 setTitle:[keyboardElements objectAtIndex:2]  forState: UIControlStateNormal]; 
    [element4 setTitle:[keyboardElements objectAtIndex:3]  forState: UIControlStateNormal]; 
    [element5 setTitle:[keyboardElements objectAtIndex:4]  forState: UIControlStateNormal]; 

    }
    return self;
}

ただし、ボタンはメッセージを受信しません。コードを別のメソッドに実装すると、setTitle:メソッドは正常に機能しますが、キーボードが作成されたらすぐにメソッドが呼び出されるようにしたいと思います。NSLogを使用して、initWithCoder:メソッドが呼び出されることを確認しました。また、コードをawakeFromNibメソッドに入れてみましたが、それも機能しません。

4

0 に答える 0