我正在使用 Xcode 4.5,针对 iOS5 及更高版本。我有一个弹出框,允许用户更改底层视图的字体。点击字体时,不会发生更改,直到我关闭弹出窗口和下级视图并重新打开。它是为委派而设置的。并且接收视图确实导入了FontsPopoverViewDelegate
. 任何对解决方案的帮助将不胜感激。
字体的委托方法:
@protocol FontsPopoverViewDelegate <NSObject>
- (void)fontResize:(float)size forView:(int)type;
- (void)font:(int)fontID forView:(int)fView;
- (int)getFontForView:(int)fView;
- (float)getFontSizeForView:(int)fView;
@end
在底层视图中实现的方法:
- (void)fontResize:(float)size forView:(int)type {
fontSizes[type] = size;
[self invalidate];
}
- (void)font:(int)fontID forView:(int)fView {
fontIds[fView] = fontID;
[self invalidate];
}
- (int)getFontForView:(int)fView {
return fontIds[fView];
[self invalidate];
}
- (float)getFontSizeForView:(int)fView {
return fontSizes[fView];
[self invalidate]; // added to spark a reaction from the view
}
-(void) invalidate {
NSLog(@"Invalidate called");
[self saveTextChanges];
[self refreshBodyText];
[self refreshBackground];
[self refreshBodyText];
[self refreshDateFont];
[self refreshTitleFont];
}
任何帮助将不胜感激。