macos - NSTableView 中的 NSTextField 会截断日期

标签 macos swift nsdateformatter nstableview nstextfield

我有一个 NSTableView( View 类型,而不是单元格类型),它导致文本末尾带有“...”。当我调整列的大小时,“...”并没有消失,表明尺寸是在其他地方设置的...但我不确定在哪里。

表格如下: enter image description here

当我把它变大时,文本仍然被截断:

enter image description here

如果我取出“.ByClipping”,我会得到:

enter image description here

这是制作单元格的代码:

func tableView(tableView: NSTableView, viewForTableColumn tableColumn: NSTableColumn?, row: Int) -> NSView? {
    let identifier = tableColumn!.identifier
    let networkName = displayedNetworks[row]
    let networkVals = model.networks[networkName]!
    if let val: AnyObject = networkVals[identifier]  {
        var obj = tableView.makeViewWithIdentifier(identifier, owner:self)
        if (obj==nil) {
            // No existing cell to reuse, so make a new one
            obj = NSTableCellView(frame:NSMakeRect(0,0,400,400))
            obj!.identifier = identifier
        }
        let cellView = obj as! NSTableCellView
        if let d = val as? NSDate {
            let formatter = NSDateFormatter()
            formatter.dateStyle = NSDateFormatterStyle.ShortStyle
            formatter.timeStyle = .ShortStyle
            cellView.textField!.stringValue = formatter.stringFromDate(d)+"****"
            cellView.textField!.lineBreakMode = .ByClipping
        }
        else {
            cellView.textField!.stringValue = "\(val)"
        }
        return cellView
    }
    return nil 

出了点问题,但我想不通。我认为调整列的大小会调整包含的单元格的大小。我的不是。这只发生在显示日期的单元格上。我该怎么办?

最佳答案

例如,您可以在 IB 中选择 Table View Cell,然后单击位于左下角弹出窗口下方的“解决自动布局问题”按钮和“添加缺失约束”。

enter image description here

关于macos - NSTableView 中的 NSTextField 会截断日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32760811/

相关文章:

iphone - nsdateformatter 不适用于日本日历

iOS - 友好的 NSDate 格式

cocoa - Xcode 3.2 中缺少 "find options"

macos - Vagrant 和 Docker 玩得不好

c - GCC undefined symbol

ios - Swift UITableView(无部分)过滤到带部分的 TableView

ios - 快速将按钮操作添加到 TableView 单元格

swift - 使用结构构建端点

python - 如何在 El Capitan 上安装 cx_Oracle

ios - NSDateFormatter 毫秒错误