MenuItemFont *start = [MenuItemFont itemFromString:@"Start Game" target:self selector:@selector(startGame:)]; [start.label setRGB:0 :0 :0]; // Black menu item
Label是MenuItemFont的一个属性,是MenuItem的子类,因此在隐式转换为MenuItem时会丢失它.
或者,您可以这样做:
[((MenuItemFont *)start).label setRGB:0 :0 :0]
(但这很难看,而startMenu将采用一个没有投诉的MenuItemFont).
请记住,在MenuItemFont中,大部分颜色都是硬编码的,因此调用'setIsEnabled'会将颜色设置为灰色或白色.这发生在MenuItem.m的第239行附近,如果你需要调整它.如果我开始制作一个补丁来在MenuItemFont上公开这个功能(假设它还没有在.7.1之前的源代码中)我会更新我的帖子.