【问题标题】:How do I set the width of NSTextField inside NSTableColumn如何在 NSTableColumn 中设置 NSTextField 的宽度
【发布时间】:2016-01-13 13:43:42
【问题描述】:

我有一个有 2 列的 NSTableView,其中单元格是普通的 NSTableCellViews,其文本字段的文本是从字典中设置的。

这一切都是在 IB 中创建的,我只是将表格视图拖放到我的应用程序中。

我的问题是,无论列宽如何,单元格文本都会被截断。以编程方式设置列宽或在运行时调整列宽都没有关系。

这是我的 viewForTableColumn:

  func tableView(tableView: NSTableView, viewForTableColumn tableColumn: NSTableColumn?, row: Int) -> NSView?
  {
    let cell : NSTableCellView = tableView.makeViewWithIdentifier(tableColumn!.identifier, owner: self) as! NSTableCellView
    cell.textField!.stringValue = dataArray[row].objectForKey(tableColumn!.identifier)! as! String
    return cell
  }

在这里你可以看到结果(我列出了已安装的应用程序及其当前版本)

.

如您所见,一些名称较长的行被截断。

关于如何为文本字段提供显示其所有内容所需的宽度的任何指针?在 Xcode/IB 中或以编程方式。这是我的第一个 OSX 应用程序,所以像我是 Windows 用户一样与我交谈……;)

【问题讨论】:

    标签: swift macos nstableview nstablecellview


    【解决方案1】:

    你可以使用约束。首先选择您的文本字段,然后在工具提示显示“解决自动布局问题”的右侧按下那个小按钮。然后选择添加缺失的约束。

    【讨论】:

    • 啊。傻我。有趣的是,当您转移到稍微不同的环境时,您会忘记基本的事情。我将 NSTextField 中的 3 个约束添加到容器视图 (NSTableViewCell)。 1. 前导空间 2. 垂直位置 3. 等宽 感谢您提醒我,约束实际上也适用于 mac 应用程序:D
    猜你喜欢
    • 1970-01-01
    • 2021-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-19
    • 2020-01-28
    • 2020-09-05
    • 2015-10-13
    相关资源
    最近更新 更多