Я пишу приложение MacOS SpriteKit в Objective C (нацелен на 10.12).Я пытаюсь использовать NSComboBox
в приложении, создав подкласс.Поле со списком отображается без проблем, но я получаю следующее предупреждение, и мне интересно, как от него избавиться:
Это приложение пытается нарисовать очень большое поле со списком, 30 очков в высоту.Вертикально изменяемые поля со списком не поддерживаются, но бывает, что 10.4 и предыдущие версии рисовали что-то вроде нормального.Искусство в 10.5 не разбивается таким образом, чтобы поддерживать этот рисунок.Это приложение должно быть пересмотрено, чтобы перестать использовать большие поля со списком.Это предупреждение будет появляться один раз при запуске приложения.
Вот подкласс:
MFComboBox.m
#import "MFComboBox.h"
@interface MFComboBox()
@property (weak) SKScene *scene;
@end
@implementation MFComboBox
- (void)drawRect:(NSRect)dirtyRect {
[super drawRect:dirtyRect];
// Drawing code here.
}
-(instancetype) initWithFrame:(CGRect)frame Scene:(SKScene*)scene {
[super init].frame = frame;
_scene = scene;
[self addItemWithObjectValue:@"hi"];
return self;
}
@end
Воткласс, который создает поле со списком:
GameScene.m
#import "GameScene.h"
#import "MFComboBox.h"
@implementation GameScene
- (void)didMoveToView:(SKView *)view {
MFComboBox *comboBox = [[MFComboBox alloc] initWithFrame:CGRectMake(400, 400, 80, 30) Scene:self];
[self.view addSubview:comboBox];
}
-(void)update:(CFTimeInterval)currentTime {
// Called before each frame is rendered
}
@end