问题描述
我希望能够将多行文本粘贴到使用 XCode 12.3 在 Catalina 上运行的 MacOS Cocoa 应用程序(用目标 C 编写)中的控件中。我从库中添加了一个 NSScrollView 控件并创建了一个 NSTextView 类型的插座。我可以输入多行文本,用回车键插入换行符,并通过插座的字符串属性检索代码中的文本。但是,如果我单击控件并尝试使用 (AppleSymbol)C 粘贴复制到剪贴板的多行数据,则不会粘贴任何文本。是否可以将多行数据粘贴到 NSScrollView 中?
解决方法
问题是默认不支持复制/粘贴功能。但是,Alex
指向的 Willeke 的其中一个响应中描述了一个简单的修复Create a menu (e.g. "Edit") which contains your Cut / Copy / Paste menu items
Add the KeyEquivalent for the CMD key to your "Edit" menu
Add the KeyEquivalents to these menu items (CMD + X and so on)
Link the FirstResponder's cut: copy: and paste: functions to your corresponding menu items.
First Responder 功能与菜单项的链接是通过右键单击 Placeholders->First Responder(显示在查看界面资源中 - 例如 MainMenu.xib)来完成的。这会显示一长串函数,包括您刚刚添加的函数。将其拖到一侧,然后单击对象-> 主菜单-> 并选择编辑-> 菜单,然后选择您添加的菜单项之一。这将在界面窗口内的应用程序中显示新菜单。通过为剪切、粘贴或复制的第一响应者功能选择 + 并按住 ctrl 拖动到界面窗口中的相应界面菜单项上来完成链接。一条蓝线将它们连接起来。