【问题标题】:Width of NSTextField inside NSTableCellViewNSTableCellView 内 NSTextField 的宽度
【发布时间】:2014-10-08 18:15:54
【问题描述】:

我正在尝试使用文本字段和按钮创建一个非常简单的 NSTableCellView。我的 NSTableCellView 布局代码如下。我希望文本字段的宽度为 100 像素。

- (NSView *)outlineView:(NSOutlineView *)outlineView viewForTableColumn:(NSTableColumn *)tableColumn item:(id)item {

    MyTableCellView *cellView = [outlineView makeViewWithIdentifier:@"MyTableCellView" owner:self];

     if (cellView == nil) {
         cellView = [[MyTableCellView alloc] initWithFrame:NSMakeRect(0, 0, NSWidth(outlineView.bounds), [outlineView rowHeight])];

         NSTextField *textField = [[NSTextField alloc] initWithFrame:NSMakeRect(0, 0, 100, [outlineView rowHeight])];
         [cellView addSubview:textField];
         cellView.textField = textField;

         NSButton *button = [[NSButton alloc] initWithFrame:NSMakeRect(108, 0, 50, [outlineView rowHeight])];
         [cellView addSubview:button];
         cellView.button = button;

         cellView.identifier = @"MyTableCellView";
     }

     cellView.textField.stringValue = item.stringValue;

     return cellView;
}

然而,当我这样做时,NSTextField 占据了整行:

我做错了什么?

【问题讨论】:

    标签: cocoa nsoutlineview nstablecellview


    【解决方案1】:

    我发现了问题。我没有考虑将我创建的 NSTextField 设置为 NSTableCellView 的文本字段出口。事实证明不应该这样做,因为它会自动调整大小。

    所以我取出了这条线,它按预期工作:

    cellView.textField = textField;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-08-25
      • 1970-01-01
      • 1970-01-01
      • 2015-02-04
      • 2013-10-03
      • 2012-12-08
      • 1970-01-01
      相关资源
      最近更新 更多