我正在尝试修复 NSSplitView 中的分隔线。在http://www.cocoabuilder.com/archive/cocoa/202611-fixed-width-of-pane-in-nssplitview.html找到它是如何完成的, 希望它能正常工作,但我什至无法测试这个.. .
我 [希望] 通过执行以下代码行为我的 SplitView 类设置委托:
[self.mySplitView setDelegate:self.mySplitView];
SplitView 类实现也在实现委托,如下所示:
@interface PanelSplitView : NSSplitView <NSSplitViewDelegate>
在 Objective-C 实现中,我有以下方法:
-(void)splitView:(NSSplitView *)sender resizeSubviewsWithOldSize:(NSSize)oldSize
{
NSLog(@"Resizing SplitView subviews");
CGFloat dividerThickness = [sender dividerThickness];
NSRect leftRect = [[[sender subviews] objectAtIndex:0] frame];
NSRect rightRect = [[[sender subviews] objectAtIndex:1] frame];
NSRect newFrame = [sender frame];
leftRect.size.height = newFrame.size.height;
leftRect.origin = NSMakePoint(0, 0);
rightRect.size.width = newFrame.size.width - leftRect.size.width
- dividerThickness;
rightRect.size.height = newFrame.size.height;
rightRect.origin.x = leftRect.size.width + dividerThickness;
[[[sender subviews] objectAtIndex:0] setFrame:leftRect];
[[[sender subviews] objectAtIndex:1] setFrame:rightRect];
}
由于没有日志输出,我知道该方法永远不会被调用。我知道在同一个类中实现 View 和 Delegate 可能并不常见,但我以前做过,并且到目前为止每次都有效。请告知我可能做错了什么。
谢谢