如何确定NSSearchField/NSTextField是否具有输入焦点?
小智 29
之前的答案是错误的,因为NSTextField
/ NSSearchField
它本身不会成为第一个响应者并处理已编辑的文本.相反,他们使用窗口的字段编辑器,该窗口编辑器在窗口上的NSTextView
所有字段之间共享(因为它们中只有一个可以一次具有焦点).
您需要查看第一个响应者是否为a NSText
,如果是,则查看搜索字段/文本字段是否为其委托.
NSResponder *firstResponder = [[NSApp keyWindow] firstResponder];
if ([firstResponder isKindOfClass:[NSText class]] && [(id)firstResponder delegate] == mySearchField) {
NSLog(@"Yup.");
}
Run Code Online (Sandbox Code Playgroud)
虽然格雷格·泰特斯(Greg Titus)的答案可能有用,但我认为以下是更好的方法:
BOOL isFirstResponder = mySearchField.currentEditor == mySearchField.window.firstResponder;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3292 次 |
最近记录: |