gpt4 book ai didi

macos - NSTextFinder 对 NSTextView 的操作

转载 作者:行者123 更新时间:2023-12-03 16:18:58 26 4
gpt4 key购买 nike

我正在 try catch 自定义 NSTextView 子类上的所有 NSTextFinderClient 调用。

在我的 -(void)performTextFinderAction:(id)sender 覆盖上调用显示操作,但对于查找下一个、查找上一个等,它不会被调用。

有什么想法吗?

谢谢!

编辑:

如果您创建一个新项目并从界面生成器中拖动 NSTextView,则当查找栏位于第一个位置时,command-g 和 command-shift-g(查找下一个和查找上一个)将不起作用应答者。

这是为什么呢?

我需要一个 NSTextView 的自定义子类来响应每个事件的查找栏。

最佳答案

我在 Apple 的 TextEdit 源代码中进行了搜索,因为使用 TextEdit,即使搜索字段是第一响应者, TextView 中的标准搜索栏对于 command-G(和其他快捷键)也能正常工作。

我找到了解决方案。

转到 Nib 的主菜单,然后选择“查找”(和相关)菜单项。它们应该绑定(bind)到名为“performFindPanelAction:”的默认操作。现在取消绑定(bind)它们并绑定(bind)到第一响应者的“performTextFinderAction:”。

您可能在第一响应者的操作列表中找不到该操作。因此,您需要在第一响应者的属性检查器 Pane 中自行添加它。

下面的文档就是这个意思

Before OS X v10.7, the default action for these menu items was performFindPanelAction:. Whenever possible which you should update your implementation to use this new action.

https://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSResponder_Class/#//apple_ref/occ/instm/NSResponder/performTextFinderAction :

关于macos - NSTextFinder 对 NSTextView 的操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7198432/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com