2013-01-12 8 views
0

Я пытаюсь загрузить файл xib для пользовательской клавиатуры с помощью следующего кода. После этого мне нужно разгрузить и снова перезагрузить. Я не понимаю, как перезагрузить этот код. Я хотел бы знать, как это сделать.load/reload xib uiview

- (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; 
} 

ответ

2

Я только что разместил образец проекта о том, как загрузить пользовательский UIView из файла .xib.

https://github.com/PaulSolt/CompositeXib

Вам понадобится дополнительный выход UIView и этот код для класса/.xib файл с именем WidgetView:

- (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]; 
} 
Смежные вопросы