首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

NSTableView使用键盘获取正在编辑的单元格

NSTableView是苹果公司提供的一个用于显示和编辑表格数据的界面组件。它是Mac OS和iOS开发中常用的控件之一。

NSTableView使用键盘获取正在编辑的单元格,可以通过以下步骤实现:

  1. 首先,需要将NSTableView的委托对象设置为当前控制器(或其他类)的实例,以便实现相关的委托方法。
  2. 在委托对象中,实现以下方法:
    • tableView:shouldEditTableColumn:row:方法:该方法用于判断指定单元格是否可编辑。根据需要,可以返回YES或NO。
    • tableView:shouldSelectTableColumn:方法:该方法用于判断指定列是否可被选中。返回YES表示可选中,返回NO表示不可选中。
    • tableViewSelectionDidChange:方法:该方法会在表格的选中项发生变化时被调用。在该方法中,可以获取当前选中的行和列的索引。
    • textShouldBeginEditing:方法:该方法用于判断指定单元格是否可开始编辑。返回YES表示可编辑,返回NO表示不可编辑。
    • textDidEndEditing:方法:该方法会在单元格编辑结束时被调用,可以在该方法中处理编辑后的数据。
  • 在tableViewSelectionDidChange:方法中,根据选中的行和列索引,可以获取到正在编辑的单元格,然后调用其edit方法开始编辑。

下面是示例代码:

代码语言:txt
复制
class ViewController: NSViewController, NSTableViewDelegate, NSTableViewDataSource {
    @IBOutlet weak var tableView: NSTableView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        tableView.delegate = self
        tableView.dataSource = self
    }
    
    func numberOfRows(in tableView: NSTableView) -> Int {
        return 10
    }
    
    func tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView? {
        let cellIdentifier = NSUserInterfaceItemIdentifier("CellIdentifier")
        let cell = tableView.makeView(withIdentifier: cellIdentifier, owner: self) as? NSTextField
        
        if cell == nil {
            let cell = NSTextField()
            cell.identifier = cellIdentifier
        }
        
        cell?.stringValue = "Cell \(row)"
        return cell
    }
    
    func tableViewSelectionDidChange(_ notification: Notification) {
        guard tableView.selectedRow >= 0 && tableView.selectedColumn >= 0 else {
            return
        }
        
        let selectedCell = tableView.view(atColumn: tableView.selectedColumn, row: tableView.selectedRow, makeIfNecessary: false) as? NSTextField
        
        if selectedCell != nil && selectedCell!.isEditable {
            selectedCell!.edit(withFrame: selectedCell!.frame, in: tableView, editor: NSApp.mainWindow!.contentView!.nextKeyView, delegate: self, event: NSApp.currentEvent!)
        }
    }
    
    func control(_ control: NSControl, textShouldEndEditing fieldEditor: NSText) -> Bool {
        // 处理编辑结束后的数据
        return true
    }
}

在上面的代码中,tableViewSelectionDidChange:方法中获取到选中的单元格后,调用了edit方法开始编辑。同时,control:textShouldEndEditing:方法可以用于在编辑结束后处理数据。

对于NSTableView的更详细信息和其他功能,你可以参考腾讯云开发者文档中的相关内容:NSTableView相关文档

注意:本回答中提供的链接是虚构的,仅作示例使用,请根据实际情况替换为真实的腾讯云文档链接。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

ABAP 之ALV列编辑及单元格可编辑的使用方式

序 在ALV展示内容时,分为直接查看,用户事件,跳转,光标事件等等,其中编辑ALV数据是经常使用的动作. 这里简单介绍两种ALV可编辑的方式....注意使用时要配置,对应的STATUS,USERCOMED,否则双击时会出现报错的情况 ....ALV 单元格编辑 在工作应用中,会遇到当达到某种条件时,某个单元格可以编辑或者某个单元格不可以编辑.此时会跟单元格颜色一样.针对某个格子进行逻辑判断或者赋值.这里详细讲下,如何进行单元格编辑 ....* 第三步 , 需要可以编辑的单元格进行逻辑判断 if 条件. 清空工作区 gwa_edit-fieldname = '列字段'.   ...结果展示 技术总结 在工作中ALV数据内容编辑是经常使用的一种方式,此时就需要我们能够熟练使用对应的技术.此篇文章中介绍了两种必会的alv可编辑案例.希望能够帮助大家.

4.6K31
  • 使用VBA获取单元格背景色中红色、绿色和蓝色的数值

    标签:VBA 我们可以使用VBA代码来获取单元格背景色中的RGB值,如下图1所示。 图1 列B、C、D中的单元格值就是列A中相应单元格背景色的RGB值。...下面是将单元格背景色拆分成RGB数字表现形式的自定义函数: Function Red(rng) As Long Dim c As Long Dim r As Long c = rng.Interior.Color...As Long c = rng.Interior.Color b = c \ 65536 Mod 256 Blue = b End Function 这样,如上图1所示,在单元格...B2中输入: =Red(A2) 在单元格C2中输入: =Green(A2) 在单元格D2中输入: =Blue(A2) 就会得到单元格A2的背景色相应的RGB值。...如果在其他应用中我们要选择背景色,但却不知道其RGB值,那么就可以先在Excel单元格中设置想要的背景色,然后使用这几个函数获取其RGB值,这样就可以应用到其他程序中了。

    3.5K30

    【译】W3C WAI-ARIA最佳实践 -- 布局

    当使用导航键在单元格间移动焦点,例如光标键,它们不能用于某些操作,例如操作组合框或在单元格内移动编辑光标。...在单元格内编辑和导航 当使用导航键在单元格间移动焦点,它们不能用来执行像操作组合框或在单元格内移动光标的操作。用户可能需要用于网格导航的键来操作单元格内的元素,如果单元格包含: 可编辑内容。...如果正在编辑内容,它也可能会撤消修改。...如果必须使用,只能包含一个这样的控件且让其作为最后一个元素。 当且仅当组合中包含三个或三个以上的控件时,才能使用工具栏作为分组元素。 键盘交互 当工具栏获取焦点时,焦点被设置在第一个可用控件上。...(译者注:一般情况下,屏幕阅读器用户会使用Tab快速浏览页面上的内容,顺序为从上到下、从左到右,此时,若工具栏获取焦点,则将焦点设置在第一个可聚焦的元素上,若使用 Shift + tab 反向浏览,若工具栏获取焦点

    6.2K50

    《Python for Excel》读书笔记连载4:Python开发环境之Jupyter笔记本

    与Excel相比,在笔记本中显示Python代码可以更容易地查看正在发生的事情,而Excel公式隐藏在单元格值后面。Jupyter笔记本也很容易在本地和远程服务器上运行。...要将单元格类型更改为Markdown,选择该单元格,然后在“单元格模式”下拉列表中选择Markdown(见图2-3)。在后面的表中会为你显示一个更改单元格模式的键盘快捷键。...命令模式 当你与Jupyter笔记本中的单元格交互时,你就处于编辑模式(editmode)或命令模式(commandmode): 编辑模式 单击单元格可启动编辑模式:选定的单元格周围的边框变为绿色,单元格中的光标闪烁...在命令模式下可以使用的最重要的键盘快捷键如下表所示。 表:键盘快捷键(命令模式) 了解这些键盘快捷键将使你能够高效地使用笔记本,而无需一直在键盘和鼠标之间切换。...为此,我们将使用VisualStudio Code,这是一个强大的文本编辑器,具有很好的Python支持。

    2.7K30

    优化Jupyter Notebook:提示,技巧,nbextension,Productivity tips

    快捷键 按Ctrl+Shift+p或单击菜单栏中的小键盘图标以获取命令调色板列表 命令和编辑模式中的快捷方式: Shift + Enter 运行当前单元格,在下面选择 Ctrl + Enter 运行选定的单元格...End 单元格结束 Ctrl + Left 跳转词左边 Ctrl + Right 跳转词右边 进入命令模式后,按 H(帮助)以获取键盘快捷键列表: 列出了一些最常用的快捷方式。...X 将切割选定的单元格 C 将复制选定的单元格 V 将粘贴正在复制/剪切的单元格 Shift + V 贴上面的单元格 S 将保存NoteBook F 查找/替换 O 将切换输出 D + D(D两次)将删除活动单元格...➡列出所有环境变量 %env var ➡获取var的值 %env var val➡为var设定值 在shell中运行命令: %system ➡使用shell(主要用于获取当前目录,日期等) 使用以下方法将...3.跳转到变量/函数/类的定义 使用Alt+ click可以使用鼠标跳转到定义,或者使用Ctrl+ Alt+ B仅限键盘替换jupyterlab-go-to-definition扩展名: https:/

    5K20

    这件神器,每个 Python 学习者都值得一试

    导读:不论你是刚开始学 Python,还是正在啃数据分析的骨头,对你来说,不断在各种命令行窗口和编辑器里切来切去,或者不断打开各种窗口查看 matplotlib 的输出之类的繁琐操作,一定是家常便饭了。...04 编辑模式和命令模式 按照你选中一个单元格时的方式,单元格有两种不同的激活模式:编辑模式和命令模式。...如果你点击代码区域,则单元格就进入编辑模式,光标将在你点击的位置闪烁,而左边的指示条也变成绿色,表示你正在编辑代码内容: ? 在编辑时,你可以按 ESC 键退出编辑模式,回到命令模式。...这两种模式的区别在于,在编辑模式下,代码编辑框接收你所有的键盘输入,让你对代码/文本进行编辑。而在命令模式下,Jupyter Notebook 页面能响应你的各种键盘快捷命令。...想了解编辑模式和命令模式下可用的键盘快捷键都有哪些,你可以在菜单栏选择 Help(帮助) -> Keyboard Shortcuts(键盘快捷键),系统会列出具体的命令清单: ?

    91120

    这件神器,每个 Python 学习者都值得一试

    不论你是刚开始学 Python,还是正在啃数据分析的骨头,对你来说,不断在各种命令行窗口和编辑器里切来切去,或者不断打开各种窗口查看 matplotlib 的输出之类的繁琐操作,一定是家常便饭了。...编辑模式和命令模式 按照你选中一个单元格时的方式,单元格有两种不同的激活模式:编辑模式和命令模式。...表示你正在编辑代码内容: 在编辑时,你可以按 ESC 键退出编辑模式,回到命令模式。...这两种模式的区别在于,在编辑模式下,代码编辑框接收你所有的键盘输入,让你对代码/文本进行编辑。而在命令模式下,Jupyter Notebook 页面能响应你的各种键盘快捷命令。...想了解编辑模式和命令模式下可用的键盘快捷键都有哪些,你可以在菜单栏选择 Help(帮助) -> Keyboard Shortcuts(键盘快捷键),系统会列出具体的命令清单: 保存记录点 Jupyter

    90340

    15个应该掌握的Jupyter Notebook 使用技巧

    进度条 可以使用python外部库创建进度条,它可以实时更新代码运行的进度。它让用户知道正在运行的代码脚本的状态。你可以在这里获得相关的库Github库。...代码自动补全 Jupyter notebook可以显示任何函数名或变量的补全建议。若要查看补全建议,可以按键盘上的Tab键,建议将出现在一个自上而下显示的菜单中。...多行同时编辑 Jupyter Notebook支持同时使用多个光标编辑代码。通过alt键选择要编辑的代码段后,可以同时使用多个光标编辑代码。 ? 12....Jupyter notebook有很多内置的键盘快捷键,可以在“help”菜单栏下找到:“help”>“Help>Keyboard Shortcuts”。...Jupyter notebook还提供了编辑键盘快捷键的功能,以方便程序员进行个性化设置。 快捷键面板(命令模式) ? 快捷键面板(编辑模式) ?

    1.9K30

    提高效率 |ArcGIS Pro 中所有快捷键一网打尽

    复制单元格中所选的值。 Ctrl+V 粘贴所选内容。 将复制的值粘贴到单元格。 F2 编辑单元格。 编辑当前单元格的内容。 Esc 取消操作。 取消编辑值并将原始值恢复到单元格。...应用当前编辑,然后转到下一列。如果在行的末尾,则转到下一行的第一个单元格。 Ctrl+Enter 应用编辑并转至下一行。 应用当前编辑并转至同一列的下一行。...高程工具 用于设置 3D 要素 z 值的键盘快捷键 键盘快捷键 操作 注释 S 暂停草绘平面。 使用从视图获取 Z时,暂停当前 3D 高程草绘平面。...编辑表 用于编辑表的键盘快捷键。铅笔图标将显示在正在编辑的行左侧的第一个像元中。该单元格同样用加粗的深绿色勾勒轮廓。...Ctrl+V 将剪贴板中的内容粘贴到单元格或单元格区域中。 F2 编辑单元格的内容。 Enter 提交当前编辑。 Esc 取消单元格中的编辑并恢复原始值。

    1.3K20

    CSV文件编辑器——Modern CSV for mac

    点击安装》Modern CSV for mac 快速编辑 多单元格编辑 复制行、列和单元格。 移动行、列和单元格。 插入行和列。 删除行和列。 大文件处理 加载数十亿行的文件。...可根据您的需要自定义明暗 主题 键盘快捷键您可以根据自己的喜好进行 设置,包括单元格大小、行/列阴影、文本字体等。...Modern CSV Mac功能特点 轻松编辑CSV文件 为什么移动列、复制行或拆分单元格会很困难?使用现代 CSV,这很容易。 使用大多数命令,您可以一次对多个行、列或单元格进行操作。...事实上,它的加载速度比 Excel 快 11 倍。 您可以自定义的 CSV 编辑器 我们将 Modern CSV 设计为一个易于使用的应用程序。...要更轻松地查看 CSV 文件,您可以设置主题(浅色或深色)、更改单元格大小或每隔一行或一列添加阴影。 对于键盘忍者,我们提供了大多数命令键盘快捷键,您可以根据自己的喜好进行设置。

    4.9K30

    15个节省时间的Jupyter技巧

    4、添加多个游标 如果你需要重命名写在几个地方的变量,或者在编辑代码时,你希望你有多个光标。 在Jupyter notebooks中,可以使用多个光标同时编辑文本。...%store命令的值在内核重启后也是可以访问的,看看下面这个例子。 10、列出所有键盘快捷键⌨ 学习键盘快捷键将节省你大量的时间。...以下是Jupyter notebook中一些常用的键盘快捷键列表: Enter:当前单元格进入编辑模式 Esc:当前单元格进入命令模式 Shift + Enter:运行当前单元格并移动到下一个单元格 Ctrl...(在命令模式下) 还可以使用%shortcuts魔术命令查看当前单元格输出区域的键盘快捷键列表: %shortcuts 这将显示所有快捷键及其相应操作的列表。...如果你正在处理大量的大型数据集,并且numpy的速度不够快,那么你可以直接在python代码中直接编写一些c或fortran代码。

    2.1K40

    Jupyter-Notebook使用技巧

    使用技巧 使用Markdown 在Jupyter Notebook中是可以直接使用Markdown的: 1、在编辑框中操作:鼠标箭头放在编辑框左边 ?...快速生成单元格 下图中显示没有第3个单元格,我们将光标放在第二个单元格的左边 ? 当编辑栏变成蓝色:按下键盘上的A键,在上面生成一个新的单元格,如果是按下B键,则在下面生成一个新的空白单元格: ?...,此时单元格是蓝色的 编辑模式:允许你向单元格中输入代码或者文本内容,此时单元格是绿色的 命令模式 Esc将带你进入命令模式,你可以使用箭头键在笔记本上导航,命令行模式下的操作: 键盘上的A在当前单元格上方插入一个新单元格...键盘上的M将当前单元格更改为Markdown格式,Y将其更改回代码格式 D+D:按键两次,删除当前的单元格 Shift-Enter : 运行本单元,选中下个单元 Ctrl-Enter : 运行本单元 Alt-Enter...: 运行本单元,在其下插入新单元 Shift-K : 扩大选中上方单元 Shift-J : 扩大选中下方单元 编辑模式 键盘上的Enter键会从命令模式转换回给定单元格的编辑模式。

    1.5K40

    在excel中使用python?

    由于 Excel 中的 Python 计算在云中运行,因此需要使用 Internet 访问才能使用该功能。 如何获取支持python的excel?...不过目前新的版本还没有发布,需要先加入Microsoft 365 Insider 计划。然后去获取 Beta 新版 Excel。...python in excel 初体验若要在 Excel 中开始使用 Python,请选择一个单元格,转到功能区中的 “公式 ”,然后选择“ 插入 Python”。...这会告知 Excel 你想要在所选单元格中编写 Python 公式。 或者在单元格中使用函数 =PY 来启用 Python。...使用编辑栏进行类似代码的编辑行为,例如使用 Enter 键创建新行。 使用向下箭头图标展开编辑栏,一次查看多行代码。 还可以使用键盘快捷方式 Ctrl+Shift+you 展开编辑栏。

    21210

    一步一步,开始上手Mac 开发(一)

    怎样使用文本(text field),按钮(button),图片(image view) 6. 图片(image view)的获取方式(从硬盘或者摄像头) 7....Mac中,这个控件叫做NSTableView(类似iOS中的UITableview)。...AppDelegate.m文件 运行程序,确保上面我们做的设置没有错误。为了能够显示需要的Bug 列表,我们要让table view 从模型中获取数据。...在OSX中table view 控件是NSTableView,它类似iOS中的UITableView,不同的是在NSTableView的一行(row)中可以有很多列(column) 1.20 选中table...最终运行结果 你可以从这里下载到整个项目的demo:github 代码示例 下一篇,我们将对table view 列表进行添加,编辑,删除的操作已经窗口尺寸的适配,未完待续...

    4.1K40

    Spread for Windows Forms高级主题(3)---单元格的编辑模式

    理解单元格的编辑模式 通常情况下,当终端用户双击单元格时,编辑控件将允许用户在该单元格中输入内容。在一个单元格中编辑的能力被称为编辑模式。一些属性和方法可以用来自定义编辑模式的使用。...你可以使用StartCellEditing 和 StopCellEditing方法启动和结束编辑模式。 阻止单元格获取焦点 你可以防止单元格获得焦点,从而禁止终端用户点击该单元格。...你可以通过设置单元格的CanFocus属性控制焦点的设置,这些设置通过键盘输入和鼠标操作进行定义。 为单元格自定义焦点指示器 聚焦框向终端用户显示了被选中的单元格和活动的单元格。...你也可以从这个参数中获取x坐标和y坐标。你可以实现一个MouseDown事件,从 X和Y坐标中获取已经被点击的表头单元格的行和列的索引信息。...通过使用FpSpread类中的GetColumnHeaderCellFromPixel方法,你可以为列单元格获取CellRange类格式中的目标单元格信息。

    1.9K60
    领券