我已经在我的一个项目中集成了Oomph MacMapKit,我完成了所有步骤。但有一个问题。 我正在使用NSToolbar并在视图之间切换。每当我在我的地图页面中,如果我切换到另一个页面,然后切换回地图页面,地图就会在MKMapView下绘制,而MKMapView是白色的,但我可以通过在白色区域中拖动鼠标来导航地图。
我也在另一个项目中尝试过它,它的行为就像这样。
正常看
切换回来后
有谁知道如何解决这个问题?
此代码在我的窗口控制器委托中运行,用于切换页面
- (NSView*)viewForTag:(int)tag
{
switch (tag)
{
case 0:
return [firstViewController view];
break;
case 1:
return [secondViewController view];
break;
default:
return [firstViewController view];
break;
}
}
- (IBAction)switchViews:(id)sender
{
NSView* currentView = [self viewForTag:[sender tag]];
NSView* previousView = [self viewForTag:currentViewTag];
currentViewTag = [sender tag];
[[[[self window] contentView] animator] replaceSubview:previousView with:currentView];
}
地图页面中没有特殊代码。
提前致谢
答案 0 :(得分:0)
我无法对您的代码进行错误处理。我假设您逐步执行代码并检查所有视图是否已正确添加和删除。此外,您可能想要检查切换后为地图视图设置的帧。如果框架的NSRect是你的空白区域,那么不管怎样,MKMapView并不热衷于添加到视图堆栈中以及从视图堆栈中删除。
这是一个很长的镜头,但你可以尝试下列之一:
使用setHidden:
暂时使地图视图不可见,而不是删除和添加地图视图。不确定,但你可能会从中获得一点性能以及隐藏和显示可能比添加和删除更便宜......
使用addSubView:
和removeFromSuperview
切换您的观看次数。这可能需要一些代码来提供正确设置视图的框架,或者在添加视图时可以使用“默认”框架。
底线MKMapView是WebView的包装,有时看起来有点奇怪。
答案 1 :(得分:0)
这个地图套件有时会有点障碍,改变我的呈现方式解决了这个问题。