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

NSTextView不支持在Cocoa应用程序中重做和撤消

NSTextView是Cocoa框架中的一个类,用于在Mac应用程序中显示和编辑文本内容。然而,与其他一些文本编辑器不同,NSTextView不直接支持重做(redo)和撤消(undo)操作。

重做和撤消是一种常见的文本编辑功能,允许用户在编辑过程中撤销之前的操作或者重新执行已经撤销的操作。虽然NSTextView本身不直接支持这些功能,但可以通过使用Cocoa框架中的其他类和方法来实现。

一种常见的实现方式是使用NSUndoManager类来管理撤消和重做操作。NSUndoManager是一个用于管理撤消和重做操作的对象,可以跟踪和管理应用程序中的操作历史。通过将NSUndoManager与NSTextView结合使用,可以实现撤消和重做功能。

以下是一种可能的实现方式:

  1. 创建一个NSUndoManager对象,并将其与NSTextView关联。
  2. 在用户执行可撤消的操作(如插入、删除、替换文本等)之前,使用NSUndoManager的beginUndoGrouping方法开始一个新的撤消组。
  3. 执行用户操作,并将操作的撤消方法(undo方法)添加到NSUndoManager中,以便在需要时可以撤消操作。
  4. 在用户完成操作后,使用NSUndoManager的endUndoGrouping方法结束撤消组。
  5. 如果用户想要撤消操作,可以调用NSUndoManager的undo方法来执行撤消操作。
  6. 如果用户想要重做操作,可以调用NSUndoManager的redo方法来执行重做操作。

需要注意的是,这只是一种实现方式,具体的实现可能会因应用程序的需求而有所不同。此外,还可以根据具体情况自定义撤消和重做的行为,例如限制撤消和重做的次数、自定义撤消和重做的操作等。

在腾讯云的产品中,与文本编辑相关的产品包括云服务器(ECS)、云数据库(CDB)、云存储(COS)等。然而,这些产品与NSTextView的重做和撤消功能并无直接关联。因此,在这个特定的问题中,暂时没有相关的腾讯云产品推荐。

希望以上信息能对您有所帮助!

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

相关·内容

试水 Mac 开发 —— 代码生成器

我对 Mac 开发其实一无所知……我就是直接打开 Xcode,新建了个 macOS 的项目,然后 Storyboard 上拖了一个 TextField 两个 TextView 进去,设置好约束之后,...我准备把三个控件连到代码……然后我尴尬地发现 NSTextView 连到 IBOutlet 之后,类型是 NSScrollView [黑人问号❓❓❓]。...后来仔细揣摩了一下 Storyboard 里控件的层级关系,我发现之前真的只是单纯地连了个 NSScrollView 到代码,真正的 NSTextView 一个奇怪的地方: ?... Mac 开发中使用 RxSwift 感觉 RxCocoa 对 Cocoa 的支持并不好,譬如没有为 NSTextView NSTextField 提供 rx.string、rx.stringValue...具体效果就是,只有左侧把 Model Name JSON 都填上,右边才会显示结果,之后无论是改变 Model Name 还是 JSON 内容,右侧结果都会跟着变化。

73420
  • 最新iOS设计规范六|10大交互规范(User Interaction)

    简要而准确地描述要撤消重做的操作。撤消重做警示框的标题自动包含前缀“撤消”或“重做”(包括尾随空格)。你需要提供一到两个词用于描述撤消重做的内容,以显示在此前缀之后。...例如,你可以创建警报标题,例如“撤消名称”或“重做地址更改”。 当摇动手势用于呼出撤消重做操作时,请不要将其用于其他操作。...如果你的APP确实需要专门的撤消重做按钮,请使用系统提供的图标并将它们放在预期的位置,例如导航栏。 仅在当前上下文中执行撤消重做操作。...当您的应用在紧凑的环境运行时,请确保工具选择器不会遮挡内容。 考虑提供自定义撤消重做按钮,以便应用程序紧凑环境运行时显示。...iPad上,源位置目标位置也可以存在于不同的应用程序,从而实现跨应用程序交互,例如将照片从Safari的网页拖到Mail的新消息。

    4.2K30

    鼠标教鞭:Presentify for mac

    想要注释任何屏幕,突出显示光标,Presentify Mac版绝对是您的首选,该软件拥有随时随地画画、高亮显示鼠标指针、撤消/重做支持等强大功能,简便易用非常不错。...即使其他应用程序以全屏模式运行,您也可以绘制。非常适合现场演示远程工作时的视频通话。通过Sidecar或Astropad连接到Macbook的iPad上运行。与XP笔一起使用。...更改光标突出显示的颜色,不透明度大小。您也可以选择仅在移动光标/鼠标时突出显示。3、键盘快捷键您可以使用简单的键盘快捷键在任何应用程序中注释屏幕,突出显示光标,更改绘图颜色形状等。...4、撤消/重做支持注释时不必担心错误。5、多屏支持多个屏幕上进行注释,而不必打开/关闭注释。为每个屏幕保存的会话,因此屏幕之间切换时无需切换控件,颜色等。...每个屏幕都有自己的撤消/重做堆栈,因此您会意外擦除看不见的内容。6、白板如果需要,可以白板上绘制(不要在其他应用程序上绘制)。您甚至可以将白板的颜色更改为您想要的颜色。

    86040

    Revolut英国网络应用程序推出了提前批工资功能

    其次,英国,Revolut与Modulr合作,让你提前一天拿到工资。Revolut一直致力于开发移动应用程序。...现在,每个人都可以登录Revolut的web应用程序,查看他们的交易历史信用卡。从这个界面,你可以冻结和解除冻结借记卡控制卡的功能。...这款网络应用还支持通过银行转账、银行卡支付或Apple Pay(Safari浏览器)进行账户充值。默认情况下,Revolut发送一个推送通知,以便您可以授权web浏览器访问。...英国,大多数人都是通过Bacs支付计划拿到工资的,这是为了优化支付基础设施,长假期的周末到来之前,这可能特别有用。...增加一些能让用户更容易地放弃银行账户的功能可以提高公司的用户数量,这将帮助该公司增加其信用卡交换费、订阅收入其他收入来源。

    78030

    每日一练:完全恢复与不完全恢复概念

    许多情况下,这是理想的目标,因为可能对数据库进行了一些需要撤消的更改。恢复到过去的某个点是解决用户误操作的一种方法。 2. 完全恢复过程 ?...以下步骤描述了完全恢复期间发生的情况: 从备份恢复损坏或丢失的文件。 根据需要应用增量备份、归档重做日志文件和在线重做日志文件的更改。...要执行时间点恢复,需要: 恢复点之前对所有数据文件进行有效的脱机或联机备份 从备份到指定恢复时间的所有归档日志 执行时间点恢复的步骤如下: 从备份恢复数据文件:所使用的备份必须来自目标恢复点之前。...过度恢复状态:State of over-recovery:现在数据文件包含一些已提交一些未提交的事务,因为重做日志包含未提交的数据。...其结果类似于DBPITR的结果,包括打开的RESETLOGS,但Flashback数据库通常更快,因为它不需要恢复数据文件,与介质恢复相比,只需要有限的重做应用程序

    76120

    【Mysql-InnoDB 系列】InnoDB 架构

    MySQL 8.0.20开始,双写表空间存储区域放在了双写文件。 3.5 重做日志 重做日志(redo log)是一种基于磁盘的数据结构,用于崩溃恢复期间更正由不完整事务写入的数据。...正常的操作重做日志对SQL语句或低级API调用产生的更改表数据的请求进行编码。在意外关闭之前未完成数据文件更新的修改,将在初始化期间接受连接之前自动重放。...如果另一个事务需要将原始数据视为一致读取操作的一部分,则会从撤消日志记录检索未修改的数据。撤消日志存在于撤消日志段,而撤消日志段包含在回滚段。...回滚段驻留在undo表空间全局临时表空间中。 驻留在全局临时表空间中的撤消日志,用于用户定义的临时表修改数据的事务。这些撤消日志不是重做日志,因为崩溃恢复不需要它们。...这种类型的撤消日志通过避免重做日志I/O而提高了性能。

    1.2K10

    WPFSilverlight的Command

    我们日常的应用程序操作,经常要处理各种各样的命令进行相关的事件处理,比如需要复制、粘贴文本框的内容;上网查看网页时,可能需要返回上一网页 查看相应内容;而当我们播放视频多媒体时,我们可能要调节音量...Winform编程,我们经常使用各种各样的控件来 解决此类问题,当然我们也必须编写一堆代码来处理各种各样的命令事件处理。...比如文本框TextBox就提供了复制(Copy),粘贴(Paste),裁切(Cut),撤消(Undo)重做(Redo)命令等。...WPF提供常用应用程序所用的命令集,常用的命令集包括:ApplicationCommands, ComponentCommands, NavigationCommands, MediaCommands...项目中也打造一套自己的Command,特别是与UI元素耦合以及不支持命令组合,所以他们Prism便增加了另外一套Command:DelegateCommandCompositeCommand。

    89550

    数据库复习题 考试题库(简答题)

    两者的区别联系是什么? 基本表是实际存储在数据库的二维表,它是本身独立存在的表,SQL中一个关系就对应一个表。 视图是关系数据库系统提供给用户以多种角度观察数据库数据的重要机制。...把数据的修改写到数据库把对数据的修改操作写到日志文件是两个不同的操作,两个操作之间可能会发生故障如果先写了数据库修改,而在日志文件没有登记这个修改,恢复的时候就无法恢复这个修改了;如果先写日志,...因此恢复操作就是要撤消故障发生时未完成的事务,重做已完成的事务。...1)事物故障 事物在运行过程由于种种原因,如输入数据的错误,运算溢出,违反了某些完整性限制,某些应用程序的错误,以及并行事物发生死锁等,使事物未能运行到正常中指点之前就被撤消了,这种情况称为“事物故障...转储可分为静态转储动态转储。静态转储是系统无运行事务时进行的转储操作。动态转储是指转储期间允许对数据库进行存取或修改。即转储用户事务可以并发执行。 转储还可分为海量转储增量转储两种方式。

    3K10

    Oracle基础教程之redo过高诊断

    241 1 Oracle@orastb.bonc.com.cn (SMON) 65308 2)法二 (针对正在运行事务redo生成量) 查询V$TRANSACTION.此视图包含有关事务信息的撤销块撤消记录...( USED_UBLK and USED_UREC ) SELECT s.sid, s.serial#, s.username, s.program,  t.used_ublk, t.used_urec...一天的特定时间内。 2。存档日志的突然增加。...在这两种情况下,首先要检查的是数据库级别上的任何修改(修改任何参数、执行的任何维护操作、..)应用程序级别(部署新应用程序,修改代码,增加用户,..)。...要知道高重做的确切原因,我们需要关于重做活动的信息负载的详细信息。以下信息需要收集高redo做生成期间。 1]要知道日志切换的趋势,可以使用以下查询。

    40610

    软件界面中一些易混淆易用错的界面文案,以及一些约定俗成的文案约定

    无论哪一种,都说明了理由可溯源的资料。 撤销 / 撤消 推荐:软件界面推荐使用 “撤销”。应该逐渐淘汰“撤消”的使用。 实际:国产软件主要使用“撤销”,而国外软件的中文版本两者都有使用。...Windows 系统 Office 套件使用的是“撤消”: 撤销恢复 / 撤销重做撤消恢复 / 撤消重做 正确:恢复。 撤销:Undo。恢复:Redo。重做:Repeat。...正常情况下,Office 的左上角有一对按钮:“撤消重做”。但是,“重做” 的意思真的是 “重复上一步操作”。...因此,如果只是 Office 软件里看了一眼就把文案抄过来了,那就会出现 “撤消重做” 这样的误用;实际上应该是 “撤销恢复”。... 第一批异形词整理表 对于 “账” “帐” 的用法有一项相关的说明,明确 “账本”(zhàngběn)一词是普通话书面语推荐的使用词形,而 “帐本” 是 “账本” 异形词。

    16960

    Swing 的 undo 包实现撤销重做功能

    如果没有编辑重做end尚未援引这一收益来自值UIManager财产“AbstractUndoableEdit.redoText” ? 可以为Undo/Redo操作提供描述。...比如,如果要在菜单中提供“撤消删除”,“重做删除”菜单项而不是简单的无所指的“撤消”,“重做”菜单项,可以通过这两个方法来获得。...execute方法实现操作逻辑,undo方法实现Undo的逻辑。redo方法ListEdit已经实现 一个需要注意的问题是,实现执行逻辑时要保留现场数据,以供Undo时恢复现场。..."; } public String getRedoPresentationName() { return "重做删除元素"; } } 3 界面调用添加...4 调用Undo/Redo 撤消”按钮的事件处理器,直接调用UndoManager的undo方法; 重做”按钮的事件处理器,直接调用UndoManager的redo方法。

    99020

    设计师都能懂的 Redux 指南

    一般来说,我们需要在应用程序管理三个方面的数据 获取存储数据 将数据绑定到 UI 元素 改变数据 比如我们要做一个 Dribbble 的作品页面。作业页面上我们想要展示的数据有哪些?...改变数据 有时候,应用程序更新数据的逻辑可能相当复杂。它可能涉及多个相互依赖的步骤。更新应用程序状态之前,可能需要等待多个服务器的响应。...撤销、重做 流行的 撤销/重做 功能需要系统级规划。因为撤销/重做需要记录回放应用程序的每一次数据更改,所以你必须从一开始就在架构中考虑到这一点。...正因为 Redux 需要每个动作都以文本的形式进行描述,所以可以说是天生就支持撤消/重做。这个文档中介绍了如何使用 Redux 来实现撤消/重做。...如同撤消/重做一样,Redux 也支持 Optimistic UI。 当从服务器收到否定结果时,可以轻松记录,重放还原数据更改。

    1.6K10

    从设计的角度看 Redux

    一般来说,我们需要在应用程序管理三个方面的数据 获取存储数据 将数据绑定到 UI 元素 改变数据 比如我们要做一个 Dribbble 的作品页面。作业页面上我们想要展示的数据有哪些?...改变数据 有时候,应用程序更新数据的逻辑可能相当复杂。它可能涉及多个相互依赖的步骤。更新应用程序状态之前,可能需要等待多个服务器的响应。...撤销、重做 流行的 撤销/重做 功能需要系统级规划。因为撤销/重做需要记录回放应用程序的每一次数据更改,所以你必须从一开始就在架构中考虑到这一点。...正因为 Redux 需要每个动作都以文本的形式进行描述,所以可以说是天生就支持撤消/重做。这个文档中介绍了如何使用 Redux 来实现撤消/重做。...如同撤消/重做一样,Redux 也支持 Optimistic UI。 当从服务器收到否定结果时,可以轻松记录,重放还原数据更改。

    1.7K30

    纯前端表格控件SpreadJS V11.2新版本发布,全面支持ReactVue

    该软件包可以您的应用程序中下载使用,无需手动重新下载替换即可轻松更新软件包。...之前的 SpreadJS 版本,如果行头/列头被隐藏,则边框不会显示最顶行最左列。工作表区域偏移功能现在完美地解决了这个问题。了解更多。...其他增强功能 撤消/重做增强:以前的版本,必须使用多个功能处理自定义命令的撤消重做。现在用户只需要定义“执行”功能,使其更简单。...FilterDialog UI增强:SpreadJS现在支持过滤器对话框的树层次结构,对日期轮廓很有用。...SpreadJS 纯前端表格控件自面世以来,已经能源、金融、物流、信息技术行业引起广泛关注,备受华为、海信、立信、中国平安、中国能建、通快递、金麒麟北京神软等客户青睐。 关于葡萄城 赋能开发者!

    1.4K00

    我们未来会怎样构建Web应用程序

    审计、撤消 / 重做 并且某些时候,我们要完成的需求会增加复杂性。 例如,假设我们需要支持“撤消 / 重做”,用于好友操作。...撤消 / 重做是许多应用的必需品。 也许突然发生了一个错误,于是我们不小心删除了数据。事实统治的世界不会有这样的事情——反正你可以撤销删除操作。但这并不是我们大多数人生活的世界。...Hasura 以牺牲原型制作速度为代价,为你提供了更强大的订阅更强大的本地状态。据我所知,还没有方案能在客户端解决冲突,提供撤消 / 重做强大的响应式查询。...某些层面,未来已经到来了。例如,我认为 Figma 就是一款来自未来的应用:它可以出色地处理离线模式、撤消 / 重做多人关系。如果我们想制作这样的应用,理想的数据抽象应该是什么样的?.../ 重做 最后,这个抽象应该让我们更容易实现离线模式,或者撤消重做

    10K30

    MySQL 8.0.21新的数据文件位置一致性

    作者:Kevin Lewis 译:徐轶韬 MySQL 8.0创建常规表空间时,可以选择创建关联数据文件的目录。...启动时,InnoDB会首先搜索已知目录的表空间数据文件,之后再进行恢复。由于表空间目录没有存储MySQL 8.0的重做日志,恢复时需要依赖已知目录来查找打开数据文件。...崩溃后,如果重做日志包含对这些文件的更改,则必须将这些数据文件目录添加到–innodb-directories,MySQL才能够启动。如果由于表空间尚未打开而无法应用重做日志,则恢复启动将失败。...如果旧表空间是现有数据库的一部分,并且其目录未知,则不会在相同的未知目录创建新表空间。它将在默认目录为隐式表空间创建。也就是说,它是datadir下以该模式命名的目录创建。...但之前可以唯一的撤消目录创建非撤消表空间。如果使用先前的MySQL版本唯一的撤销目录创建了一些非撤消表空间,升级到MySQL 8.0.21后,InnoDB会允许它存在。

    1.5K30

    5个让你提高工作效率的 VueUse 库函数

    现在我们已经安装了 VueUse,让我们我们的应用程序中使用它。 1、useRefHistory 跟踪响应式数据的更改 useRefHistory跟踪对 ref 所做的每个更改并将其存储在数组。...这使我们可以轻松地为我们的应用程序提供撤消重做功能。 让我们看一个示例,其中我们正在构建一个我们希望能够撤消的文本区域。...第一步是不使用 VueUse 的情况下创建我们的基本组件——使用 ref、textarea 用于撤消重做的按钮。...#2ecc71; color: white; padding: 5px 10px;; } 然后,让我们通过导入useRefHistory函数然后从我们的文本引用中提取历史、撤消重做属性来添加...当我们输入时,每个字符都会触发历史数组的一个新条目,如果我们单击撤消/重做,我们将转到相应的条目。 还有不同的选项可以为此功能添加更多功能。

    1.8K10

    MySQL是怎么保证数据一致性的

    当事务对数据库进行多个更改时,要么提交事务时所有更改都成功,要么回滚事务时撤消所有更改。” “ACID模型是一组数据库设计原则,强调业务数据关键应用程序的可靠性很重要。...例如对银行转帐事务,不管事务成功还是失败,应该保证事务结束后ACCOUNTS表TomJack的存款不变。 I : isolation 隔离性。...Undo Log存在于撤消日志段,这些日志段包含在回滚段。...MySQL事务的四个特性ACD三个特性是通过Redo Log(重做日志)Undo Log 实现的,而 I(隔离性)是通过Lock(锁)来实现。...MySQL官方文档“锁事务模型”这一章节开始就介绍了InnoDB的锁,截个目录,感兴趣可以去读一下。 ?

    4K10
    领券