keyDown:(NSEvent *)当焦点位于文本字段时不会调用事件

2023-12-19

我已经覆盖了- (void)keyDown:(NSEvent *)event in my NSPanel子类。

但是,仅当焦点不在某个对象上时才会调用它NSTextField在我的面板里面。 不过我需要赶上这个事件“按下输入按钮”无论焦点是在文本字段还是面板上。

如何确保它始终被调用?


您确定需要为此捕获按键事件吗?

苹果在文档中指出摆弄keyDown:for 控件是最后的手段,仅当围绕委托的正常 Cocoa 架构不能满足您的要求时才使用。

如果目的是捕获按下的 Enter 按钮,请注意文本字段中的此事件会触发textDidEndEditing委托方法(或通知,如果您愿意的话)。

所以如果你实施controlTextDidEndEditing:在您的代表中NSTextField您应该能够对事件做出反应。当字段编辑器结束编辑时发送此通知(以及相关委托方法)。

如果您希望提前一步捕获事件(在字段编辑器结束编辑之前),您可以实现委托方法control:textView:doCommandBySelector:它允许您拦截特定的按键事件(例如返回键)并修改编辑器的行为。

示例如下:

- (BOOL)control:(NSControl *)control textView:(NSTextView *)fieldEditor doCommandBySelector:(SEL)commandSelector
{
    BOOL retval = NO;
    if (commandSelector == @selector(insertNewline:)) {
        retval = YES; // Handled

        // Do stuff that needs to be done when newLine is pressed
    }
    return retval;
}

苹果网站上有很多关于它的文档,例如简介here http://developer.apple.com/library/mac/#documentation/TextFonts/Conceptual/CocoaTextArchitecture/TextFieldsAndViews/TextFieldsAndViews.html.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

keyDown:(NSEvent *)当焦点位于文本字段时不会调用事件 的相关文章

  • iPhone iOS 保存从 UIImageJPEGRepresentation() 获得的数据第二次失败:ImageIO: CGImageRead_mapData 'open' failed

    我的 UIImage 操作遇到了一个奇怪的问题 我正在进行保管箱同步 并且必须将我的图像存储为本地文件 为此 我使用以下命令保存它们UIImagePNGRepresentation image or UIImageJPEGRepresent
  • Objective-C:在哪里定义宏以便随处可用?

    我有一个 iOS 应用程序 它在许多视图控制器中使用相同的字符串 数字等 所以我认为最好在一个文件中定义这些常量并在所有视图控制器实现中使用它 优点是更改一个数字 我只需要做一次 而不是在所有视图控制器中都使用该数字 实际上 我的 h 文件
  • NSDictionary 上的 NSPredicate

    我试图根据字母表在表格视图中创建部分 并在这些部分下按字母顺序对我的条目进行排序 我已经收集了 bandArrayIndex 中 bandArray 每个条目的第一个字母 现在我尝试使用 NSPredicate 来计算每个字母有多少个 我正
  • 最近打开的应用程序[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 有什么方法可以获取最近打开的应用程序 例如 4 个 的列表吗 如果是这样 怎么办 可可麦克 看看LaunchServices LSSh
  • 是否有适用于 iPad 2 的条码扫描仪 SDK? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 使用 iOS 8 自定义键盘发送图像?

    我一直在为 iOS 8 开发自定义键盘 但在尝试使用键盘发送图像时偶然发现了一个问题 我做了一些研究 似乎没有一种简单的方法可以做到这一点UITextDocumentProxy因为只有NSStrings被允许 我是否忽略了使用自定义键盘发送
  • NSString – 静态还是内联?有性能提升吗?

    如果我写的话会有任何性能提升吗 NSString helloStringWithName NSString name static NSString formatString Hello return NSString stringWith
  • 在 Cocoa OS X AVPlayer 中播放 HLS (m3u8) - Swift

    基本上我正在尝试在 Cocoa Swift 中使用 AVPlayer 播放 m3u8 HLS Live Stream 我对这门语言比较陌生 所以基本上掌握了一些示例代码 http qiita com ono matope items 23d
  • 导入 RNCryptor 后架构 armv7 的未定义符号

    我导入了 RNCryptor 可以在这里找到 https github com rnapier RNCryptor https github com rnapier RNCryptor进入我的应用程序 但是 我在日志中收到了三个错误 Und
  • 在 OS X 上创建和使用静态库

    好的 我正在尝试创建一个 Cocoa 库 静态 并使用 但我不断收到错误 我创建了一个超基本的静态库 TSXLib 其中仅包含一个额外的类 import
  • 如何使用 Swift 使用 TouchID?

    Apple 为 iOS 8 的 TouchID 实现提供的文档采用 Objective C 语言 有 Swift 版本吗 Objective C IBAction touchIDAvailable UIButton touchIDAvail
  • 在 Objective C 的类方法中引用类本身

    我希望我没有跳过 ObjC 手册中的这一部分 但是是否可以从类的一个类方法中引用该类 就像在 PHP 中一样 您将使用 this 来引用当前实例 而 self 引用实例的类 this 的 ObjC 等价物将是 self 那么 PHP 的 s
  • 从 robovm 项目创建 iOS 静态库(JNI 中的 BAD_ACCESS)

    我有大量的Java代码 只有计算函数 没有UI 我想在iOS中将其重用为静态库 我的方法是使用robovm http www robovm com并按照robovm论坛中两篇文章中描述的非官方方式创建静态库 1 基本方式 https gro
  • 有什么方法可以询问方法的名称吗?

    我正在尝试调试我正在开发的 iPhone 应用程序 向各种源文件添加 50 条 NSLog 语句的想法让我感到很兴奋 我想做的是写一对陈述 比如 NSString methodName self methodName NSLog metho
  • Objective-C 中是否有相当于 C++ 动态转换的功能?

    如果我有两个类 子类和超类 SuperClass super new SuperClass SubClass sub new SubClass SubClass sub pointer The nice one line cast belo
  • 未知异常和崩溃

    当我尝试快速滚动表格视图或从远程重新加载数据时 我的应用程序崩溃了 当我先进行远程获取然后滚动表格视图时 一切似乎都工作正常 我不知道下面的崩溃日志意味着什么 它只是有时工作正常 有时崩溃 Incident Identifier 710A1
  • 使用 UITabBarController 时覆盖整个屏幕的视图?

    我想在 UITabBarController 设置中在整个屏幕上覆盖 HUD 样式的透明图形 执行此操作的按钮位于第一个选项卡的屏幕 FirstViewController 中 并且覆盖层也应该覆盖选项卡 这可能吗 您可以将新视图直接附加到
  • iOS7 由 Interface Builder 生成的 NSIBPrototypingLayoutConstraint 自动布局约束问题

    以前在 iOS6 中 我的聊天消息视图控制器使用 IB 中精心构建的自动布局约束正确显示和动画 下面是 Xcode 5 中删除了约束的当前视图层次结构 升级到 XCode 5 和 iOS7 后 我发现我需要清除所有旧的约束才能解决默认的半透
  • 在可可中将 NSMutableArray 写入文件时出现问题

    一个真正的初学者问题 我有一个 NSView 子类 在其中创建一个包含 NSValues 的 NSMutableArray 当我想使用 writetofile atomatically 将数组写入文件时 文件已创建 但它不包含可变数组所包含
  • 节拍匹配算法

    我最近开始尝试创建一个移动应用程序 iOS Android 它将自动击败比赛 http en wikipedia org wiki Beatmatching http en wikipedia org wiki Beatmatching 两

随机推荐

  • 如何在React Native Android中添加自定义字体

    我想设置fontFamily到 roboto 精简我的工具栏标题 我已经添加了roboto Thin ttfassets fonts我的 android 项目的文件夹 但是它似乎在运行应用程序时产生问题 我在运行时遇到这个问题 反应本机启动
  • java cpu使用率监控

    有没有办法使用纯Java来监控CPU使用率 kgiannakakis 链接的文章评论中有一个宝石 javasysmon https github com jezhumble javasysmon wiki JavaSysMon 管理进程和
  • Discord.js V13 发送消息附件

    升级到discord js v13并使用后Array from message attachments values 代替message attachments array 发送消息中的附件 message client channels
  • AWS API Gateway 缓存忽略查询参数

    我正在 AWS API Gateway 端配置缓存以提高 REST API 的性能 我尝试配置的端点正在使用查询参数 我已经在 AWS API Gateway 端启用了缓存 但不幸的是 我发现它在构建缓存键时忽略了查询参数 例如 当我使用查
  • 如何启用 Guard Malloc

    这是一个愚蠢的问题 文档说 要使用 Guard Malloc 启用调试 请在运行项目之前在 Xcode 中选择 运行 gt 启用 Guard Malloc 选项 启用此选项后构建并运行您的应用程序会自动使用 Guard Malloc 库运行
  • 默认 MVC 5 应用程序的安全异常

    将 VS 2013 生成的默认 MVC 5 应用程序部署到我的托管帐户时 我遇到了安全异常 对于这个问题有什么快速的解决办法吗 Description The application attempted to perform an oper
  • Yii2:在字段模糊时禁用 ActiveForm Ajax 验证

    如何自动禁用 Yii validation onblur ajax 验证 我只想在按下提交按钮后进行验证 您想使用enableAjaxValidation验证您的表单 同时不希望在每个表单上触发 ajax 验证blur当您输入该字段后 您只
  • _NET_WM_ICON 的图片格式

    环境 Ubuntu 16 04 在我的应用程序中 我通过调用获取应用程序的图标XGetWindowProperty with NET WM ICON atom unsigned char data XGetWindowProperty da
  • 对空结果集的非法操作[重复]

    这个问题在这里已经有答案了 我正在尝试在一家杂货店建立一个收银台 我的代码实际上执行了我想要它做的事情 但有一点是这样的 在我要求用户输入他们想要的商品数量后 产品信息被收集并且工作正常 但是当它应该要求用户输入下一个产品的产品 ID 时
  • 如何获取视频的完整时长和当前播放时长?

    我需要使用 swift 创建一个自定义视频插件 但我不知道如何获取视频的完整持续时间和当前播放时间 在我的控制台中刚刚出现了这个输出 C CMTime 我不确定我的代码有什么问题 My code let url NSBundle mainB
  • JSF 2.2 SelectManyCheck 破坏了 javascript

    它曾经在 jsf 2 0 上完美工作 但知道它会在屏幕末尾呈现一个框 其中包含一个包含位置数据的 html 表 如果我删除转换器 则 selectmany 复选框有效 但它仍然呈现该框
  • Jupyter输入、显示、打印执行顺序混乱

    我使用的是 Jupyter Python 版本是 3 5 在我的while循环 执行顺序不正确 这input显示了一次迭代的结果before决赛print上一次迭代的 这是我的代码 from IPython display import d
  • 如何检查变量是否为数值?

    PHP PDO 的lastInsertId 方法实际上返回一个数值 但它也可能返回一些完全不同的东西 比如一些奇怪的SQLSTATE 代码或其他什么 无论如何 它返回的不是数值 我想记录一个错误 有没有办法安全地检查这一点 Use is i
  • 为什么不能使用 WebCrypto 导出 HKDF 密钥?

    我想获取密码并通过 PBKDF2 运行它来创建主密钥 然后我想通过 HKDF 运行它来创建多个密钥 好像crypto subtle deriveKey不会接受 HKDF 作为derivedKeyAlgorithm 换句话说 我无法让这样的事
  • 在JSF页面中显示HashMap条目的键和值

    我想显示HashMapJSF UI 中的键及其关联值 我怎样才能实现这个目标 我如何迭代HashMap在 JSF 页面中使用一些迭代器组件 例如
  • 在 OSX 10.9.1 上安装 Google Cloud SDK 时遇到问题

    这里是个新手 我正在尝试按照此处的指南安装 GC SDK https developers google com compute docs gcutil https developers google com compute docs gc
  • 我收到错误:配置“编译”已过时,已被“实现”替换。将于2018年底删除

    更新 Android Gradle 插件和 Android Studio 后出现此错误 我已经检查过这个问题 Android Studio build gradle 警告消息 https stackoverflow com question
  • 重置类时 CSS 动画不会重新启动

    我正在使用CSS着色器 动画 我的着色器类定义如下 shader webkit filter custom url v vs mix url f fs multiply destination over 200 200 webkit ani
  • 在 SQL Server 存储过程中动态创建和选择表变量?

    请指导我如何动态创建表变量 我知道它可以是这样的 DECLARE people TABLE id INT name VARCHAR 32 如果不知道列和数据类型 我将如何创建 场景是我必须根据物理表创建表变量并将数据选择到其中 在 SP 中
  • keyDown:(NSEvent *)当焦点位于文本字段时不会调用事件

    我已经覆盖了 void keyDown NSEvent event in my NSPanel子类 但是 仅当焦点不在某个对象上时才会调用它NSTextField在我的面板里面 不过我需要赶上这个事件 按下输入按钮 无论焦点是在文本字段还是