- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我感觉这个表格单元格显示问题有一个简单的答案,但是,我显然需要比我更大的智慧才能找到它。
这是我的教科书 Controller 、表格和封闭 View 的委托(delegate)和数据源类...
import Cocoa
class Table8020ViewController: NSViewController, NSTableViewDelegate, NSTableViewDataSource {
var tokenText: [String] = ["alpha", "beta", "gamma", "delta", "epsilon", "zeta"]
override func viewDidLoad() {
super.viewDidLoad()
}
func numberOfRowsInTableView(aTableView: NSTableView) -> Int {
println("numberOfRowsInTableView = \(tokenText.count)")
return tokenText.count
}
func tableView(aTableView: NSTableView, objectValueForTableColumn aTableColumn: NSTableColumn?, row rowIndex: Int) -> AnyObject? {
var result = aTableView.makeViewWithIdentifier(aTableColumn!.identifier, owner: self) as! NSTableCellView
println("textField in = \(result.textField!.stringValue)")
result.textField!.stringValue = tokenText[rowIndex]
println("textField out = \(result.textField!.stringValue)")
return result
}
}
我将更新记录到 .textField 中,这似乎工作正常。
numberOfRowsInTableView = 6
textField in = Table View Cell
textField out = alpha
textField in = Table View Cell
textField out = beta
textField in = Table View Cell
textField out = gamma
textField in = Table View Cell
textField out = delta
textField in = Table View Cell
textField out = epsilon
textField in = Table View Cell
textField out = zeta
但实际的表格显示保留了原始界面生成器值! “ TableView 单元格” 在“返回结果”之后似乎发生了一些神秘的事情。
我正在使用最新的 Xcode 版本 6.3 (6D570) 和 Swift V1.2
最佳答案
你犯了一些错误。
首先,您从 tableView:objectValueForTableColumn:row
返回了错误类型的值。此方法并不请求 View 实例,而是请求 View 实例将表示的对象。换句话说,它想知道 View 将显示什么模型对象。在每种情况下,您的模型对象都非常简单 - 它是 tokenText
数组中的字符串之一。
func tableView(tableView: NSTableView,
objectValueForTableColumn tableColumn: NSTableColumn?,
row: Int) -> AnyObject? {
return tokenText[row]
}
其次,您未能实现tableView:viewForTableColumn:row:
。您可以在此处为表中的每个单元格创建 View ,并告诉该 View 要显示模型对象的哪些位。在每种情况下,您的模型对象只是一个字符串,因此您实际上是告诉 View 在其 textField
中显示整个模型对象:
func tableView(tableView: NSTableView,
viewForTableColumn tableColumn: NSTableColumn?,
row: Int) -> NSView? {
var view = tableView.makeViewWithIdentifier(tableColumn!.identifier,
owner: self) as! NSTableCellView
view.textField!.stringValue = tokenText[row]
return view
}
关于cocoa - 更新的 NSTableCellView.textField 未在表格显示中更新。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29625700/
我有一个相当基本的MainWindow.xib带有源列表样式的侧边栏。我通过将 Source List 模板拖到窗口中来创建它,该窗口已经包含两个 NSTableCellView s: HeaderC
我正在使用菜单项将列文本字段设置为可编辑。这就是我尝试过的,但根本没有响应(没有文本变为可编辑)。 (我已经登录,并且调用了该方法,并且文本字段不为空。) - (IBAction)setEditabl
是否可以编译包含 NSTableCellView 引用的 Snow Leopard 应用程序,即使包含 NSTableCellView 引用的窗口从未显示? (如果检测到雪豹,IE 会显示不同的 Vi
在我的自定义 NSTableCellView 中,我以这种方式重写 -(void)drawRect (我这样做是因为我有 NSWindow 的图案图像背景。我只需要在 cellView 中显示 NSL
我正在尝试获取一个自动布局约束,以便在 NSTableCellView 中使用动画进行更新。约束可以正常更新,但动画不会发生这种情况。 下面的代码在tableView(_ tableView: NST
我有一个基于 View 的 NSTableView .我定位了 textField和 NSTableCellView 中的其他元素在带有自动布局的 Interface Builder 中。如何根据自动
如何从 NSTableView 中手动删除 NSTableCellView(或其子类)? 当我清空保存信息的数组,将新信息排队到数据库,然后重新加载表数据时,它只会更新具有与新数组列表中找到的索引值类
我用的是简单的 NSTableViewDelegate ,在 GetViewForItem 方法中我找到了 Identifier NSTableCellView view = (NSTableCell
我在 IB 中向 NSTableCellView 添加了一个额外的新标签。 如何连接这个新字段,以便我可以像 tableView.make 中的内置字段“textfield”一样访问它( withId
我创建了 NStextField 的子类,它可以扩展和收缩以适应文本中的更改。这是代码: - (NSSize)sizeToFitContent { NSRect frame = [self f
当您突出显示一行时,左键或右键单击突出显示的单元格,它将进入编辑模式(即使在 X 秒没有事件后,因此这不是双击操作)。 我想禁用此功能并使其仅在双击时才起作用,即使您已经选择了该单元格。 如果这是不可
我正在尝试创建一个自定义 NSTableCellView。我对 NSTableCellView 进行了子类化,并且需要自定义背景颜色和突出显示/选择颜色。有办法做到这一点吗? 最佳答案 背景和选择由
我将图像和文本表单元格 View 添加到 IB 中的 NSTable。 Text Table Cell View中有一个TextFiled和一个ImageView,所以我的代码如下所示: - (NSV
我创建了一个带有单列的基于 View NSTableView。此列使用 Interface Builder 中的标准 NSTableCellView 进行填充(我选择了带有图像和文本字段的版本)。 现
我已经子类化了 NSTableCellView 来进行一些自定义绘图。当包含的 NSOutlineView 的突出显示样式设置为 None 时,我的 View 会收到 mouseDown 事件。 当我
我有一个基于 View 的 NSTableView 和一个自定义 NSTableCellView。这个自定义的 NSTableCellView 有几个标签(NSTextField)。 NSTableC
我想以编程方式将焦点设置在连续一列的表格中 NSTableCellView 中的两个编辑字段之一上,以便用户可以立即编辑该字段。在我的示例中,我可以选择该行(按下按钮后),但我找不到将焦点设置在特殊字
我尝试使用 NSGridView 来布局 NSTableCellView 像这样 class GridItemCV: NSTableCellView { var grid : NSGridView?
我确实正在尝试解决这个特定问题。已经很久了。 我有一个 Mac 应用程序,它完全位于状态栏中。每当我通过单击状态栏图标打开应用程序时,弹出窗口都会打开 contentViewController。 c
我尝试将 NSPopUpButton 垂直放置在表格单元格的顶部 - 但没有成功。它保持垂直居中: 返回 NSPopUpButtons 的代码: extension ViewController:NS
我是一名优秀的程序员,十分优秀!