我已经在我的一个项目中集成了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];
}地图页面中没有特殊的代码。
提前感谢
发布于 2012-08-03 15:15:17
这个Map Kit有时有点bit,改变我展示视图的方式就解决了这个问题。
发布于 2012-04-18 23:53:44
我不会让你的代码出错。我假设您已经遍历了代码并检查了所有视图都被正确地添加和删除了。此外,您可能希望检查切换后为地图视图设置的边框。如果框架的NSRect是您的空白,不知何故,MKMapView并不热衷于被添加到视图堆栈中或从视图堆栈中删除。
这不太可能,但你可以尝试以下方法之一:
setHidden:暂时使地图视图不可见,而不是删除和添加地图视图。不确定,但您可能会从中获得一些性能,并且隐藏和显示可能比添加和removing...addSubView:和removeFromSuperview来切换视图的成本更低。这可能需要一些代码来设置正确的视图框架,或者提供一个“默认”框架,以便在添加视图时使用。归根结底,MKMapView是WebView的包装器,它的行为有时看起来有点奇怪。
https://stackoverflow.com/questions/10176460
复制相似问题