gpt4 book ai didi

objective-c - 如何约束NSSplitView?

转载 作者:搜寻专家 更新时间:2023-10-30 19:48:14 24 4
gpt4 key购买 nike

您好,我正在尝试限制 NSSplitView 的最大和最小坐标。我创建了一个 View Controller 并将其指定为 NSSplitView 的委托(delegate)。然而,委托(delegate)方法被调用, Split View不限制到我试图将其设置为的位置。关于我做错了什么有什么建议吗?

- (CGFloat)splitView:(NSSplitView *)splitView constrainMinCoordinate:(CGFloat)proposedMinimumPosition ofSubviewAt:(NSInteger)dividerIndex 
{
NSLog(@"Constrain min");

if (proposedMinimumPosition < 75)
{
proposedMinimumPosition = 75;
}

return proposedMinimumPosition;
}

- (CGFloat)splitView:(NSSplitView *)splitView constrainMaxCoordinate:(CGFloat)proposedMax ofSubviewAt:(NSInteger)dividerIndex
{
NSLog(@"Constrain max");

if (proposedMax > 200)
{
proposedMax = 200;
}

return proposedMax ;
}

最佳答案

假设您希望垂直分隔器上的两个部分中的每一个都至少为 70.0 高,那么您将执行以下操作:

- (CGFloat)     splitView:(NSSplitView *)splitView
constrainMinCoordinate:(CGFloat)proposedMin
ofSubviewAt:(NSInteger)dividerIndex
{
return 70.0;
}

- (CGFloat) splitView:(NSSplitView *)splitView
constrainMaxCoordinate:(CGFloat)proposedMin
ofSubviewAt:(NSInteger)dividerIndex
{
return splitView.frame.size.height - 70.0;
}

减去的原因是为了动态地考虑整个 NSplitView 实例的任何调整大小(例如,使用自动布局)。如果您使用的是水平的,那么您需要根据 .width 而不是 .height 进行计算。如果您有 2 个以上的 subview ,可以通过查看 dividerIndex 并应用您认为合适的值来扩展这个想法。

关于objective-c - 如何约束NSSplitView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9442102/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com