objective-c - 如何隐藏空项目的 UITableView 网格线/分隔符

标签 objective-c cocoa swift nstableview

我有一个很大的 NSTableView,只有几个项目,由网格线/分隔符分隔。一切都很好,除了在项目下方是一堆网格线,用于空项目。如何为存在的项目显示网格线,但只为不存在的项目显示纯背景?

注意:UITableView 有一种方法来设置 footerView - NSTableView 不可能使用同样的方法,否则它只是将一个大的空 View 设置为页脚的情况......

最佳答案

我想出了一个办法:

在界面生成器中,将表格 View 的“行高”设置为一个非常大的数字,即 10000,并将其设置为“固定”。在委托(delegate)中实现 tableView:heightOfRow:

例如 swift :

func tableView(tableView: NSTableView!, heightOfRow row: Int) -> CGFloat {
        return 50
}

这意味着没有内容的单元格太大,您看不到网格线,因为上述方法似乎只对现有单元格调用。

根据 Elwisz 的评论,另一种方法是实现 NSTableRowView 的 drawBackgroundInRect:。

关于objective-c - 如何隐藏空项目的 UITableView 网格线/分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26018701/

相关文章:

ios - 在 CalloutAccessoryView 中更改 UIButton 的文本颜色

ios - 是否可以遍历 View 中的对象?

ios - 在不使用任何第三方服务(如 Parse 或 Urban Airship)的情况下在 iOS 中发送推送通知

iphone - UIImagePickerController 与我的图像

ios - 如果年份是特定值,则执行不同的功能

ios - 将拍摄的图像保存在照片库中

ios - 用 NSString 写一个 unicode 字符

cocoa - 更改时区

swift - Swift 构建中的类型检查规则?

objective-c - 使用 objective-c 的 Web 应用程序编程?