fel*_*xmp 5 macos nstextfield nstableview swift
对于那些不喜欢阅读 20 条评论以寻找答案的人。这是对我有用的:
最终代码:
tableViewAlarms.insertRows(at: [0], withAnimation: .effectFade)
let keyView = tableViewAlarms.view(atColumn: 0, row: 0, makeIfNecessary: false) as! NSTableCellView
self.view.window!.makeFirstResponder(keyView.textField)
Run Code Online (Sandbox Code Playgroud)
问题:
有一个问题。我一直坚持让我的 NSTableView 按照我想要的方式工作。我是一个初学者,使用类、继承和视图给我带来了很多麻烦。
您可以通过按“+”按钮向 NSTableView 添加一行。
第一个 tableColumn 中的 NSTextField 是可编辑的,双击时开始编辑
现在我希望在添加一行时自动激活第一列中的 NSTextField(显示光标,通过键盘响应文本输入)。
到目前为止,我已经尝试过:
class NSTextFieldSubClass: NSTextField {
override func becomeFirstResponder() -> Bool {
return true
}
}
Run Code Online (Sandbox Code Playgroud)
我还使用了单元格的绑定(或者准确地说是 NSTextField 本身),但是由于我真的不知道如何绕过这些,所以它无处可去
我认为是要走的路:
创建单元格时使 NSTextField 成为 firstResponder,但我不知道如何。任何帮助是极大的赞赏!!
另外:当光标闪烁时,NSTextField 的状态究竟是如何调用的?
编辑:
至于子类,这就是我尝试的全部:
class NSTextFieldSubClass: NSTextField {
override func becomeFirstResponder() -> Bool {
return true
}
}
Run Code Online (Sandbox Code Playgroud)
编辑截图:
编辑2:
编辑3:
编辑4:
不要子类化NSTextField。您可以立即将基于视图的表视图中的文本字段设置为第一响应者。
这很容易。
假设您知道row并且column(在示例中的第 0 行和第 0 列中)获取表格单元格视图并使view(atColumn: 0, row文本字段成为第一响应者。
let keyView = tableView.view(atColumn: 0, row: 0, makeIfNecessary: false) as! NSTableCellView
view.window!.makeFirstResponder(keyView.textField)
Run Code Online (Sandbox Code Playgroud)
第二个出口是做什么用的?只需使用标准默认值即可textField。
| 归档时间: |
|
| 查看次数: |
1056 次 |
| 最近记录: |