首页
学习
活动
专区
工具
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可编辑案例.希望能够帮助大家.

4K31
  • 使用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.2K30

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

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

    6.1K50

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

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

    2.6K30

    优化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:/

    4.9K20

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

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

    90020

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

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

    88740

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

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

    1.8K30

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

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

    97820

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

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

    4.7K30

    一步一步,开始上手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

    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.4K40

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

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

    1.8K60

    Excel编程周末速成班第21课:一个用户窗体示例

    与其在输入后检查数据(下一节中将对某些字段进行操作),不如直接阻止输入不正确数据有时更为有效。 在键盘输入到达控件之前对其进行检查方法是使用KeyDown事件。...,而不接受使用数字键盘输入数字。...你知道第一列标题位于单元格A2中。这意味着第一行空白开始于单元格A3或它下面的任何单元格中。有几种方法可以识别第一个空行。这里使用其中一种,如下: 1.从单元格A2开始作为参考点。...2.使用CurrentRegion属性获取包含标题行和所有现有数据区域。 3.使用Offset方法以原始区域中行数获得区域偏移。此新区域比原始区域低一行,并且在第一个空行中包含六个单元格。...4.使用Cells属性访问此区域内单个单元格以插入数据。 清单21-5显示了EnterDataInWorksheet过程代码,使用你已经学习技术将此过程添加到用户窗体中。

    6.1K10
    领券