如何实现以编程方式创建的NSTableView大小调整功能?不应使用接口构建器。它应该像单击并拖动来更改NSTableView的大小。可能吗?如果是,请帮忙。 。 。 。
答案 0 :(得分:0)
我担心您需要编写一些代码才能使其正常工作。我就是这样做的。
制作一个特殊的调整大小视图,它将跟踪鼠标事件并调用委托方法,提供跟踪位置的变化方式。
- (void)mouseDown:(NSEvent *)theEvent
{
_startPoint = [theEvent locationInWindow];
[_delegate resizingDidStart];
}
- (void)mouseDragged:(NSEvent *)theEvent
{
NSPoint hitPoint = [theEvent locationInWindow];
[_delegate resizeWithDeltaX:(hitPoint.x - _startPoint.x) deltaY:(hitPoint.y - _startPoint.y)];
}
将此视图放在基本视图的右下角。设置自动调整遮罩,使此视图始终位于右下角。
将表格视图及其滚动视图放在基本视图上。设置滚动视图的自动调整遮罩,使其大小和宽度相当大。
在调整大小视图过程的委托中,更改鼠标位置并设置基本视图的框架。
- (void)resizingDidStart
{
_initialRect = [_baseView frame];
}
- (void)resizeWithDeltaX:(CGFloat)deltaX deltaY:(CGFloat)deltaY
{
[_baseView setFrame:NSMakeRect(_initialRect.origin.x, _initialRect.origin.y + deltaY, _initialRect.size.width + deltaX, _initialRect.size.height - deltaY)];
}
当然滚动视图应该在调整大小视图下。您可以在调整大小视图等上绘制一些句柄。