首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSSplitView的状态不一致

NSSplitView的状态不一致
EN

Stack Overflow用户
提问于 2013-04-29 04:16:12
回答 1查看 1.1K关注 0票数 5

我正在尝试使用NSSplitView -目前相当成功,但这是我的问题:

我的SplitView看起来像这样:

测试项目:https://www.dropbox.com/s/amz863l11nvkdir/TestNSSplitView.zip

我已经实现了- (void)splitView:(NSSplitView *)splitView resizeSubviewsWithOldSize:(NSSize)oldSize,以便在调整大小时将左视图和右视图保持相同的大小。

如果我打开包含NSSplitView的窗口,控制台中会出现以下消息:

代码语言:javascript
复制
<NSSplitView: 0x107de1520>: the delegate <BRSchematicWindowController: 0x10ac11050> was sent -splitView:resizeSubviewsWithOldSize: and left the subview frames in an inconsistent state:
Split view bounds: {{0, 0}, {1068, 600}}
     Subview frame: {{0, 0}, {182, 600}}
     Subview frame: {{183, 0}, {640, 600}}
     Subview frame: {{824, 0}, {243, 600}}
The outer edges of the subview frames are supposed to line up with the split view's bounds' edges. NSSplitView is working around the problem, perhaps at the cost of more redrawing. (This message is only logged once per NSSplitView.)

这里出了什么问题?我甚至在读完这条消息后也没有得到它。

PS:在正确的splitView中有另一个NSSplitView,这不是故障。即使没有这个额外的NSSplitView,我也能得到这个消息。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-29 06:36:26

如果你的目标是OS X 10.6+,那么使用NSSplitViewsplitView:shouldAdjustSizeOfSubview:来控制大小要容易得多。

使用此方法的一种方法是在.h文件中添加以下IBOutlet

代码语言:javascript
复制
@property (nonatomic, weak) IBOutlet NSView *leftView;
@property (nonatomic, weak) IBOutlet NSView *centerView;
@property (nonatomic, weak) IBOutlet NSView *rightView;

然后在您的.m文件中实现splitView:shouldAdjustSizeOfSubview:,如下所示:

代码语言:javascript
复制
- (BOOL)splitView:(NSSplitView *)aSplitView
             shouldAdjustSizeOfSubview:(NSView *)subview {
    return (subview == _centerView);
    // or return !(subview == _leftView || subview == _rightView);
}

通过实现这一点,你基本上可以说“只在调整大小时调整中心子视图的大小”。

您可以暂时注释掉整个splitView:resizeSubviewsWithOldSize:方法,除非您需要以某种方式自定义默认行为。

请注意,如果您有多个拆分视图,并且这些拆分视图将此控制器对象设置为它们的代理,则可能需要检查以查看哪个拆分视图在aSplitView参数中传递,并相应地执行不同的操作。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16267363

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档