MenuItemFont *start = [MenuItemFont itemFromString:@"Start Game"
target:self
selector:@selector(startGame:)];
[start.label setRGB:0 :0 :0]; // Black menu item
Метка является свойством MenuItemFont, подкласса MenuItem, поэтому вы теряете его во время неявного приведения к MenuItem.
В качестве альтернативы вы можете сделать:
[((MenuItemFont *)start).label setRGB:0 :0 :0]
(но это уродливо, и startMenu примет MenuItemFont без нареканий).
Имейте в виду, что цвета по большей части жестко закодированы в MenuItemFont, поэтому вызов 'setIsEnabled' вернет цвета к серому или белому. Это происходит в строке 239 MenuItem.m, если вам нужно настроить его. Если мне удастся создать патч для раскрытия этой функциональности в MenuItemFont (при условии, что его нет в исходных кодах до версии 7.1), я обновлю свой пост.