在NSTableView中将布尔值显示为true / false而不是1/0

时间:2014-09-29 01:30:49

标签: macos cocoa swift nstableview

NSTableViewDataSource方法

的实施中
func tableView(tableView: NSTableView!, objectValueForTableColumn tableColumn: NSTableColumn!, row: Int) -> AnyObject!

,列的返回结果是本机Swift Bool类型的值。我希望它在表格视图中显示为truefalse。但是,它实际上显示为10。我想它可能已被转换为AnyObject并成为Obj-C对象。在表格视图中将它们显示为truefalse的简单方法是什么?

1 个答案:

答案 0 :(得分:0)

Objective-C Bool类型实际上是一个signed char

objc.h:typedef signed char BOOL; 
objc.h:#define YES             ((BOOL)1)
objc.h:#define NO              ((BOOL)0)

因此,当您将此作为对象返回时,您实际上会返回一些被转换为NSInteger的内容,这就是为什么它显示01

要解决此问题,请修改对象方法以返回

return theBoolValue ? @"true" : @"false"