我正在实现一个浮动在NSSearchField下的子无边界搜索结果窗口,并在用户键入时显示搜索结果。 NSWindow并不需要是关键因素,因为NSSearchField会将适当的命令(向上箭头,向下箭头,输入键)转发到窗口中的自定义搜索结果视图,让用户在搜索过程中随时浏览搜索结果。除了一个用例外,这一切都很好:我想在用户点击应用程序中的其他任何地方时轻松关闭窗口。如何轻松关闭不是关键的NSWindow?
我通常会在windowDidResignKey
通知中这样做,但在这种情况下不会发送,因为窗口永远不是关键。有其他方法可以轻松处理这种情况吗?
- 编辑与解决方案 -
使用罗布的想法的变化下面我简单地实现controlTextDidEndEditing:
,NSSearchField的委托方法,被称为(其他时间中),当搜索字段失去焦点。如果搜索字段不是我的主要父窗口的第一响应者,则关闭搜索结果窗口。
这是比我的答案更好的解决方案,因为它不需要子类化。 – 2012-03-10 23:28:58