【问题标题】:Is it possible to have focus on an NSPanel without losing focus of other background windows?是否可以专注于 NSPanel 而不会失去其他背景窗口的焦点?
【发布时间】:2012-10-15 02:12:57
【问题描述】:

我有一个自定义的 NSPanel:http://cl.ly/K8SY

我已将其设置为 NSPopUpMenuWindowLevel,即我希望它保持的级别。一个例子是聚光灯菜单,当您单击它时,后台窗口中的任何其他焦点仍然存在,但您仍然可以在搜索字段中键入。

我打开它:

[window orderFront:nil]

但这并不关注窗口和背景。

有可能实现吗?如果有,怎么做?

【问题讨论】:

    标签: objective-c xcode cocoa nswindow nspanel


    【解决方案1】:

    您需要改用-[NSWindow makeKeyAndOrderFront:] 调用。

    注意:键盘焦点只能指向一个窗口中的一个视图。 Cocoa 的 mainWindow 和 keyWindow 概念可以是不同的窗口,但它只是 keyWindow 中接受键盘输入的第一个响应者。

    【讨论】:

    • 我使用了 [window makeKeyAndOrderFront:self];但仍然没有工作。我没有使用文本字段,所以我不需要担心键盘焦点,它是我想添加焦点的 NSTableView。
    • 你试过用 -[NSWindow makeFirstResponder:] 强制 NSTableView 实例成为透明窗口的第一响应者吗?
    • 他们唯一能让tableview关注makeKeyAndOrderFront的方法是使用[NSApp activateIgnoringOtherApps:YES];,除此之外它不会获得关注
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多