Cut/copy/paste 键盘快捷键在 NSPopover 中不起作用
Cut/copy/paste keyboard shortcuts not working in NSPopover
我有一个基于 macOS NSPopover
的托盘应用程序,它显示带有登录字段(用户名和密码)的弹出窗口。
问题是用户无法将他的电子邮件或密码复制粘贴到文本字段中。出于某种原因,弹出窗口似乎不允许使用键盘快捷键。
有没有人遇到过类似的问题?
这不是最容易解决的问题,您需要做一些事情才能让它发挥作用。
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.
希望对您有所帮助!
我有一个基于 macOS NSPopover
的托盘应用程序,它显示带有登录字段(用户名和密码)的弹出窗口。
问题是用户无法将他的电子邮件或密码复制粘贴到文本字段中。出于某种原因,弹出窗口似乎不允许使用键盘快捷键。
有没有人遇到过类似的问题?
这不是最容易解决的问题,您需要做一些事情才能让它发挥作用。
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.
希望对您有所帮助!