Objective c 无法在菜单项的弹出面板中粘贴文本
我有一个菜单应用程序,我正在从菜单项启动一个NSPanel:当用户单击菜单项时,我只是第一次懒洋洋地实例化一个自定义NSWindowController,然后调用showWindow显示它: 自定义NSViewController链接到一个xib文件: 我就是这样创建它的:Objective c 无法在菜单项的弹出面板中粘贴文本,objective-c,cocoa,nstextfield,nspanel,Objective C,Cocoa,Nstextfield,Nspanel,我有一个菜单应用程序,我正在从菜单项启动一个NSPanel:当用户单击菜单项时,我只是第一次懒洋洋地实例化一个自定义NSWindowController,然后调用showWindow显示它: 自定义NSViewController链接到一个xib文件: 我就是这样创建它的: // @property (nonatomic,strong) AddFeedController* addFeedController; - (AddFeedController*) addFeedController {
// @property (nonatomic,strong) AddFeedController* addFeedController;
- (AddFeedController*) addFeedController
{
if (!_addFeedController)
{
_addFeedController = [[AddFeedController alloc]initWithWindowNibName:@"AddFeedController"];
}
return _addFeedController;
}
问题是,如果我尝试将一些文本粘贴到这两个文本字段中的一个字段中,它不会粘贴任何内容,并且会发出嘟嘟声
编辑
我设法恢复了原来的菜单,我不得不从另一个项目的xib复制它,因为只有原来的菜单可以识别,我修改了addFeedController访问器:
- (AddFeedController*) addFeedController
{
if (!_addFeedController)
{
_addFeedController = [[AddFeedController alloc]initWithWindowNibName:@"AddFeedController"];
[_addFeedController.window setLevel: NSPopUpMenuWindowLevel];
}
return _addFeedController;
}
我还修改了显示窗口的方法:
- (IBAction) launchFeedController : (id) sender
{
[self.addFeedController showWindow: self];
// I added these lines:
[NSApp activateIgnoringOtherApps:YES];
[self.addFeedController.window makeKeyAndOrderFront:self];
}
第一次面板立即出现,没有问题。但是当我关闭面板并尝试再次启动它时,它没有出现。您是否将编辑菜单保留在主XIB或情节提要中?这是必需的,因为它将cmd-V键盘快捷键链接到粘贴:操作。我没有它。我重新添加了它,但现在我可以只使用子菜单项复制粘贴文本,等效键不起作用@皮尔·伯纳德,我实际上已经接近解决方案了。我添加了您提到的方法调用,并且我还确保面板的级别为NSPOUPMENUWindowLevel。现在面板第一次显示,但是如果我关闭它并尝试重新启动它,它不会在编辑中显示详细信息。您是否在Interface Builder中启用了“关闭时发布”功能?