Interface Builder:确定哪个元素具有初始焦点

时间:2011-09-24 08:00:55

标签: cocoa interface-builder

我有一个Cocoa应用程序,其中包含表格视图和一些其他控件。当应用程序启动并显示窗口时,会在表格视图周围绘制一个蓝色对焦环。

如何摆脱那个聚焦环?当窗口首次显示时,我不想拥有任何焦点。

2 个答案:

答案 0 :(得分:2)

该窗口具有initialFirstResponder绑定,该绑定显示当窗口变为活动状态时哪个控件将处于活动状态。更改initialFirstResponder或调整界面构建器中的tableview设置以隐藏焦点环

答案 1 :(得分:1)

我首先在窗口控制器中找到阻止任何控件作为第一个响应者的最佳方法是在窗口控制器中:

斯威夫特3:

class YourWindowController: NSWindowController {

    override func windowDidLoad() {
        super.windowDidLoad()

        // Wait a frame before setting the first responder to be the window itself.
        // We can't just set it right now, because if the first responder is set
        // to the window now the system just interprets that as meaning that we
        // want the default behavior where it automatically selects a view to be
        // the first responder.
        DispatchQueue.main.async {
            window!.makeFirstResponder(nil)
        }
    }

}

它很乱,有时当窗口加载时,你会看到焦点环开始出现在一帧的一个控件上,但我还没有找到更好的方法。