代码之家  ›  专栏  ›  技术社区  ›  mixtly87

剪切/复制/粘贴键盘快捷键在NSPopover中不起作用

  •  2
  • mixtly87  · 技术社区  · 6 年前

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

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

    有没有人有类似的问题?

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

    1 回复  |  直到 6 年前
        1
  •  2
  •   Michael Dautermann    6 年前

    这不是最容易解决的问题,您需要做一些事情才能使其正常工作。

    1)将主菜单添加到主菜单。xib文件。

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

    More info can be seen here

    (2)

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

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

    到您的ViewController。m文件。

    (3)

    您还需要将状态项所显示的窗口设置为关键窗口。在您的示例应用程序中,您确实有一个被注释掉的 canBecomeKeyWindow 方法我取消了注释并始终返回 TRUE

    More info can be seen here.

    希望这有帮助!

    推荐文章