使用cocos2dx-3.5开发的Mac应用,有EditBox的界面,一打开整个程序就变成白色背景了
有人同样也遇到了这个问题
http://www.cocoachina.com/bbs/read.php?tid=1728129&page=e&#a
没有找到解决方案,而且我发现只addSubview到glfw上1个原生控件才会出现白屏,貌似当glfw中存在1个以上原生控件就不会出现该问题,猜测可能是glfw的BUG,我自己在UIEditBoxImpl-mac.mm的initWithFrame方法中,在创建NSTextField并addSubview到glfw上的前后,尝试addSubview一个NSView,发现竟然好了,虽然并不清楚原理是什么 = =,基于cocos2dx-3.5,以下附代码。
-(id) initWithFrame: (NSRect) frameRect editBox: (void*) editBox
{
self = [super init];
if (self)
{
editState_ = NO;
secure_ = NO;
self.textField = [[[NSTextField alloc] initWithFrame:frameRect] autorelease];
self.secureTextField = [[[NSSecureTextField alloc] initWithFrame:frameRect] autorelease];
//TODO: need to delete hard code here.
NSFont *font = [NSFont systemFontOfSize:frameRect.size.height*2/3];
textField_.font = font;
secureTextField_.font = font;
[self setupTextField:textField_];
[self setupTextField:secureTextField_];
self.editBox = editBox;
self.placeholderAttributes = [NSMutableDictionary dictionaryWithObjectsAndKeys:
font, NSFontAttributeName,
[NSColor grayColor], NSForegroundColorAttributeName,
nil];
[[[self getNSWindow] contentView] addSubview:textField_];
// 以下为改动
NSView *view = [[NSView alloc] initWithFrame:NSZeroRect];
[[[self getNSWindow] contentView] addSubview:view];
}
return self;
}
1赞
该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。