gpt4 book ai didi

objective-c - NSOutlineView:单元格最初太窄

转载 作者:行者123 更新时间:2023-12-03 17:24:06 25 4
gpt4 key购买 nike

我做了一个小演示来隔离我在项目中遇到的问题。

当我启动应用程序时,NSOutlineView 的单元格对于文本来说太窄:

Initial View

然后我用鼠标调整窗口大小,使其比 NSOutlineView 的内容更窄:

Narrowed View

当我现在再次放大窗口时,问题就解决了。从现在开始,大纲将按预期工作:

Re-Enlarged View

这是我的 AppDelegate 的主要方法:

- (void)applicationDidFinishLaunching:(NSNotification *)notification {
NSRect frame = NSMakeRect(0., 0., 400., 300.);
NSUInteger styleMask = NSTitledWindowMask | NSClosableWindowMask | NSResizableWindowMask;
_mainWindow = [[NSWindow alloc] initWithContentRect:frame styleMask:styleMask backing:NSBackingStoreBuffered defer:NO];
_mainWindow.title = @"Outline";

NSScrollView *leftScrollView = [[NSScrollView alloc] init];
leftScrollView.hasVerticalScroller = YES;
leftScrollView.hasHorizontalScroller = NO;
leftScrollView.drawsBackground = NO;
leftScrollView.autoresizingMask = NSViewWidthSizable | NSViewHeightSizable;
_mainWindow.contentView = leftScrollView;

NSOutlineView *outlineView = [[NSOutlineView alloc] init];
NSTableColumn *outlineColumn = [[NSTableColumn alloc] initWithIdentifier:@"Menu Item"];
[outlineView addTableColumn:outlineColumn];
outlineView.outlineTableColumn = outlineColumn;
outlineView.selectionHighlightStyle = NSTableViewSelectionHighlightStyleSourceList;
outlineView.autoresizingMask = NSViewWidthSizable | NSViewHeightSizable;
outlineView.headerView = nil;
_outlineDataSourceAndDelegate = [[MROutlineDataSourceAndDelegate alloc] init];
outlineView.dataSource = _outlineDataSourceAndDelegate;
outlineView.delegate = _outlineDataSourceAndDelegate;
leftScrollView.documentView = outlineView;

[_mainWindow makeKeyAndOrderFront:NSApp];
}

谁能解释一下这种奇怪的行为吗?

最佳答案

我不知道这是否是最优雅的解决方案,但至少它有效。创建 NSTableColumn 后,我添加了以下单行:

    outlineColumn.width = SIDEBAR_WIDTH_DEFAULT;

就是这样。我花了将近一天的时间才弄清楚:(

关于objective-c - NSOutlineView:单元格最初太窄,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12058128/

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