1

我有一个菜单应用程序,我从一个菜单项启动一个 NSPanel:当用户单击菜单项时,我懒惰地实例化一个自定义 NSWindowController(只是第一次),然后我显示它调用 showWindow:

自定义 NSViewController 链接到一个 xib 文件:

在此处输入图像描述

这就是我创建它的方式:

// @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];
}

第一次面板立即出现,没有问题。但是当我关闭面板并尝试第二次启动它时,它不会出现。

4

0 回答 0