0

次のコードを使用して、カスタム キーボードの xib ファイルを読み込もうとしています。その後、アンロードしてから再度リロードする必要があります。このコードをリロードする方法がわかりません。やり方を知りたいです。

- (id)init {
UIInterfaceOrientation orientation = [[UIDevice currentDevice] orientation];
CGRect frame;

if(UIDeviceOrientationIsLandscape(orientation))
    frame = CGRectMake(0, 0, 480, 162);
else
    frame = CGRectMake(0, 0, 320, 216);

  self = [super initWithFrame:frame];

if (self)

{   
    NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"PMCustomKeyboard" owner:self  options:nil];
    [[nib objectAtIndex:0] setFrame:frame];
    self = [nib objectAtIndex:0];

    [[NSBundle mainBundle] loadNibNamed:@"KeyBoardAccView_iPhone" owner:self options:nil];


}

[self.altButton setTitle:kAltLabel forState:UIControlStateNormal];

[self.returnButton setTitle:kReturnLabel forState:UIControlStateNormal];
self.returnButton.titleLabel.adjustsFontSizeToFitWidth = YES;

[self loadCharactersWithArray:kChar];

[self.spaceButton setBackgroundImage:[PMCustomKeyboard imageFromColor:[UIColor colorWithWhite:0.5 alpha:0.5]]
             forState:UIControlStateHighlighted];
self.spaceButton.layer.cornerRadius = 7.0;
self.spaceButton.layer.masksToBounds = YES;
self.spaceButton.layer.borderWidth = 0;
[self.spaceButton setTitle:kSpaceLabel forState:UIControlStateNormal];

return self;
}


-(void)setTextView:(id<UITextInput>)textView {

if ([textView isKindOfClass:[UITextView class]])
    [(UITextView *)textView setInputView:self];
else if ([textView isKindOfClass:[UITextField class]])
    [(UITextField *)textView setInputView:self];

_textView = textView;

NSLog(@"setTextView");
}

-(id<UITextInput>)textView {
return _textView;
}
4

1 に答える 1

2

.xib ファイルからカスタム UIView を読み込む方法に関するサンプル プロジェクトを投稿しました。

https://github.com/PaulSolt/CompositeXib

追加の UIView アウトレットと、WidgetView という class/.xib ファイル用の次のコードが必要になります。

- (id)initWithCoder:(NSCoder *)aDecoder {
    self = [super initWithCoder:aDecoder];
    if(self) {
        [self setup];      
    }
    return self;
}

- (void)setup {
    [[NSBundle mainBundle] loadNibNamed:@"WidgetView" owner:self options:nil];
    [self addSubview:self.view];
}
于 2013-08-22T22:45:02.507 に答える