![]() |
1
44
改进CocoaRocket解决方案: 下面省去了在整个应用程序中使用子类NSTextField的麻烦;它还将为处理它们的其他响应者(例如NSTextView)启用复制、粘贴和好友。
|
![]() |
2
31
视图解决方案 呈递 Copy and Paste Keyboard Shortcuts
基本上,这意味着子类化NSTextField并重写
更新: CocoaRocket网站显然已经消失了。以下是Internet存档链接: http://web.archive.org/web/20100126000339/http://www.cocoarocket.com/articles/copypaste.html 编辑
编辑: Swift 3代码如下所示
|
![]() |
3
19
我和你有同样的问题,我想我已经找到了一个更简单的解决办法。您只需将原始主菜单保留在MainMenu.xib中-它不会显示,但所有操作都将得到正确处理。诀窍是它必须是原始的,如果你只是从库中拖动一个新的NSMenu,应用程序将无法识别它是主菜单,我也不知道如何将其标记为主菜单(如果你取消选中LSUIElement,你会看到它不会显示在顶部,如果它不是原始的)。如果您已经删除了它,您可以创建一个新的示例应用程序,并从它的NIB中拖动一个菜单,这同样有效。 |
![]() |
4
10
我改进了Adrian的解决方案,使其在Caps Lock打开时也能正常工作:
|
![]() |
5
8
swift 3中的Thomas Kilian解。
|
![]() |
6
7
|
![]() |
7
5
针对Thomas Kilian解决方案的Swift 4.2
|
![]() |
8
4
这里有一个快速的swift指南,基于@Adrian、Travis B和Thomas Kilian的优秀答案。 目标是将NSApplication子类化,而不是NSTextField。创建此类后,请按照Adrian的说明,将其链接到Info.plist的“principal class”设置中。与Objective-C不同的是,我们速战机必须在principalClass配置中添加一个额外的前缀。因此,因为我的项目名为“Foo”,所以我要将“Principal Class”设置为“Foo.MyApplication”。否则将出现“未找到类MyApplication”运行时错误。
|
![]() |
9
3
我解释了在XCode 8/Swift 3中对我有用的东西。
我创造
然后换一个
|
![]() |
10
3
根本不需要添加新的类、扩展或任何代码。
这里的好处是,这些项目不会对用户隐藏,这比创建一个新类并将所有现有文本字段重新分配给它所需的时间要少。 |
|
11
0
大约一小时前,我偶然发现了同样的问题。
这对我很管用。 不幸的是,当您隐藏“编辑”菜单(只是尝试了一下)时,这种(默认)行为似乎不起作用。 |
![]() |
12
0
下面是Travis的答案,C#用于Xamarin.Mac:
|
![]() |
13
0
在下面的示例中,实际上可以替换
|
![]() |
14
0
感谢您提供此解决方案!它对我帮助很大,所以我决定贡献一些代码,希望它能帮助其他人。在我将上面建议的解决方案转换为
|
![]() |
15
0
斯威夫特5
解决方案
|
![]() |
16
-1
|