我有一个基于 macOS NSPopover
的托盘应用程序,它显示一个带有登录字段(用户名和密码)的弹出窗口。
问题是用户无法将其电子邮件或密码复制粘贴到文本字段中。由于某种原因,弹出窗口似乎不允许使用键盘快捷键。
有人遇到过类似的问题吗?
相关示例可在此处获取:https://github.com/mixtly87/NSPopoverTest
最佳答案
这不是最容易解决的问题,您需要做一些事情才能使其发挥作用。
1) 将 MainMenu 添加到 MainMenu.xib 文件中。
即使主菜单不会显示(因为您只执行 NSStatusBar 项目),但由于“编辑”菜单中的命令键(即拦截 cmd 的内容),您需要该主菜单-X、cmd-C 和 cmd-V)。这些命令键将被发送到您的文本字段或 WebView ,无论第一响应者是什么。
2)
我通过添加以下内容使您的文本字段成为第一响应者:
- (void)viewDidAppear
{
[super viewDidAppear];
[self.textField becomeFirstResponder];
}
到您的 ViewController.m 文件。
3)
您还需要将状态项调出的窗口设为关键窗口。在您的示例应用程序中,您确实有一个被注释掉的 canBecomeKeyWindow
方法。我取消了它的注释并始终返回 TRUE
。
希望这有帮助!
关于keyboard-shortcuts - 剪切/复制/粘贴键盘快捷键在 NSPopover 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49637675/