【问题标题】:All keyboard events for my NSTableView are disabled我的 NSTableView 的所有键盘事件都被禁用
【发布时间】:2012-01-23 10:06:42
【问题描述】:

我的 NSTableView 的所有键盘事件都被禁用。我不能使用箭头或选择带空格键的行。

NSTAbleView属于一个NSPanel,即当前的关键Window,NSTableView是面板的第一响应者:

print (int) [self isKeyWindow] $1 = 1

po [self firstResponder] <NSTableView: 0xa7c6cc0> 

如果我从面板(以及另一个表)中删除表格,ESC 按钮将再次起作用。我猜表事件处理有问题。

谢谢

【问题讨论】:

    标签: objective-c cocoa nstableview


    【解决方案1】:

    您的表格视图已失去其第一响应者状态。窗口中是否有任何其他控件响应关键事件?尝试设置窗口的初始第一响应者,让其他控件拒绝第一响应者,设置 nextKeyView 路径,或者通过调用 [window makeFirstResponder:tableView] 手动将表设置为第一响应者。

    第一响应者问题可能是 PITA,但如果您阅读文档并使用日志语句检查您的代码,您可以了解这些关键事件的去向。

    【讨论】:

    • 我不明白的是,我的面板是keyWindow,表是firstResponder: print (int) [self isKeyWindow] $1 = 1, po [self firstResponder]
    • 实际上面板不响应 ESC 事件,但是如果我从 nib 文件(以及另一个表)中删除表格,它就会再次工作。
    • 谢谢,你给了我我的第一个线索......但是我的 NSTableView 被放置在 ClipView 和滚动条内,以及一个位于垂直 NSStackView 内的 ScrollView......我怎样才能理解任何这个?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-19
    • 1970-01-01
    • 1970-01-01
    • 2017-05-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多