Cut/copy/paste 键盘快捷键在 NSPopover 中不起作用

Cut/copy/paste keyboard shortcuts not working in NSPopover

我有一个基于 macOS NSPopover 的托盘应用程序,它显示带有登录字段(用户名和密码)的弹出窗口。

问题是用户无法将他的电子邮件或密码复制粘贴到文本字段中。出于某种原因,弹出窗口似乎不允许使用键盘快捷键。

有没有人遇到过类似的问题?

此处提供相关示例:https://github.com/mixtly87/NSPopoverTest

这不是最容易解决的问题,您需要做一些事情才能让它发挥作用。

1 ) 添加 MainMenu 到您的 MainMenu.xib 文件。

即使主菜单不会显示(因为您只执行 NSStatusBar 项目),您也需要该主菜单,因为编辑菜单中的命令键(即拦截 cmd-X, cmd-C & cmd-V's).这些命令键将被发送到您的文本字段或您的网络视图,无论第一响应者是什么。

.

2)

我通过添加以下内容使您的文本字段成为第一响应者:

- (void)viewDidAppear
{
    [super viewDidAppear];
    [self.textField becomeFirstResponder];
}

到您的 ViewController.m 文件。

3)

您还需要将 Status Item 调出的 window 设为键 window。在您的示例应用程序中,您确实有一个注释掉的 canBecomeKeyWindow 方法。我取消注释并始终 return TRUE.

More info can be seen here.

希望对您有所帮助!