objective-c - 如何让 NSPopUpButton 接受firstResponder状态?

标签 objective-c cocoa nstextfield first-responder nspopupbutton

我有一个 NSPopUpButton ,甚至还有一个 NSPopUpButton 的简单子(monad)类。 在子类中我有:

- (BOOL)acceptsFirstResponder { return YES; }

- (BOOL)refusesFirstResponder { 返回 NO; }

现在很容易告诉窗口使按钮成为第一响应者,并且可以在启动时工作,但我也需要从 NSTextField 中按 Tab 键将其作为 nextResponder 发生。 一旦焦点位于任何 NSTextField 上,它似乎永远无法移回弹出按钮。

我在这里缺少什么? 看起来应该很简单。

解答:firstResponder 不是这里使用的东西。需要一个子类(正如我怀疑的那样)并且只需要覆盖以下内容即可返回 YES: - (BOOL)canBecomeKeyView { 返回 YES; }(感谢彼得霍西)

最佳答案

在您的 NSPopUpButton 子类中,尝试重写 canBecomeKeyView

关于objective-c - 如何让 NSPopUpButton 接受firstResponder状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15550329/

相关文章:

ios - 如何在 xcode 中相互使用两个类的对象?

objective-c - 是提供一个 NSMutableArray 还是从中创建一个 NSArray 更好?

objective-c - 如何修改我的 Cocoa 应用程序中自动生成的关于窗口?

swift - 如何在 Mac OS Swift 应用程序中重新获得/设置焦点

ios - 在事件监视器中释放更多非事件或文件缓存内存

objective-c - Google 云端硬盘(文档)导入错误 : Images not shown in updated Docs files

objective-c - 指针与整数的比较

cocoa - NSTextField 获得焦点?

objective-c - 在菜单 View 中以编程方式选择文本

macos - 什么相当于 NSTextView 上的 contentInset 属性?