标签: nssplitview

动态添加子视图后,NSSplitView不调整子视图的大小

我试图将子视图添加到我的NSSplitView中,以便我的垂直拆分视图从

---------

view A (height = 100)

---------
Run Code Online (Sandbox Code Playgroud)

----------

view A (height = 50)
----------
view B (height = 50)

----------
Run Code Online (Sandbox Code Playgroud)

我以为这很简单,但是在将新的子视图添加到拆分视图之后,两个视图的高度都没有改变。

这是将视图B添加为子视图的工作:

splitView?.addSubview(NSView(frame: NSRect(x: 0, y: 0, width: 150, height: 100)))
splitView?.adjustSubviews()
Run Code Online (Sandbox Code Playgroud)

这将导致splitViewDidResizeSubviews被调用,但是两个视图的高度都保持为100,并且彼此重叠,没有显示分隔线。

我上传了一个显示该问题的示例项目:https : //duke.box.com/s/f50y2pjjbf3ib0y60c7yr5h3p3nicok7

谢谢你的帮助

macos nssplitview autolayout nslayoutconstraint swift

2
推荐指数
1
解决办法
745
查看次数

如何从可可中的NSSplitView中删除SubView?

我正在用这个IBActions加载两个不同的视图


- (IBAction)showFirstView:(id)sender{
    theDetailViewController = [DetailViewController new];
    [theDetailViewController initWithNibName:@"DetailView" bundle:nil];
    NSView *splitRightView = [[theSplitView subviews] objectAtIndex:1];
    NSView *aDetailView = [theDetailViewController view];
    [aDetailView setFrame:[splitRightView bounds]];
    [aDetailView setAutoresizingMask:(NSViewWidthSizable | NSViewHeightSizable)];
    [splitRightView addSubview:aDetailView];
    NSLog(@"%@",(NSString *)splitRightView);
}
- (IBAction)showSecondView:(id)sender{
    theNewViewController = [NewViewController new];
    [theNewViewController initWithNibName:@"NewView" bundle:nil];
    NSView *splitRightView = [[theSplitView subviews] objectAtIndex:1];
    NSView *aDetailView = [theNewViewController view];
    [aDetailView setFrame:[splitRightView bounds]];
    [aDetailView setAutoresizingMask:(NSViewWidthSizable | NSViewHeightSizable)];
    [splitRightView addSubview:aDetailView];
    NSLog(@"%@",(NSString *)splitRightView);
}

但是使用这段代码我只是将堆栈中的子视图放在彼此前面如何在添加新子视图之前从splitRightView中删除子视图?

谢谢.

cocoa subview nssplitview

1
推荐指数
1
解决办法
1518
查看次数

如何让 NSToolbar 中的控制器随着 NSSplitViewController 的视图移动,如 Reeder 或 Mail.app

我正在开发可可应用程序。它包含一个带有一些功能按钮的工具栏。就像里德一样。

我想在调整拆分视图大小的同时调整工具栏部分的大小。像下面这样工作。如何实现这种功能?

任何人都可以帮助我或提供一些建议将不胜感激。

我正在使用 XCode7、Swift 和 Storyboard 进行开发。

在此处输入图片说明

在此处输入图片说明

xcode cocoa nssplitview nstoolbar autolayout

1
推荐指数
1
解决办法
939
查看次数

如何指定 NSSplitView 窗格/子视图的宽度

我想在 NSSplitView 中指定左窗格的默认宽度(即在代码中,因为 XCode 中似乎没有办法输入默认大小)。这是我为了实现这一目标而设法拼凑在一起的代码,但它看起来非常冗长。我是 Objective-C 的新手,所以也许有更好的方法,但我似乎无法仅在子视图(*窗格)上输入 .width 。我错过了什么吗?

NSView *pane = [[_split subviews] objectAtIndex:0];
NSRect rect = [pane frame];
rect.size.width = 200;
[pane setFrame:rect];
Run Code Online (Sandbox Code Playgroud)

附言。我知道如何执行约束[最小/最大]坐标,我想要做的是指定运行应用程序时的大小;目前它占据了窗口的 50%,我不希望这样。

谢谢

cocoa objective-c nssplitview

0
推荐指数
1
解决办法
2701
查看次数