在基于视图的 NSTableView 中,如何通过单击使控件成为第一响应者?

2024-05-10

基于视图的 NSTableView 似乎只有标准行为,为了使表内的文本字段成为第一响应者,用户必须双击或单击并“保持冷静”。

然而,考虑到基于视图的 NSTableViews 提供的灵活性,这种行为并不总是可取的,因为现在可能有很多不同且复杂的应用程序,而不仅仅是做一个“老式”表。

如何通过单击轻松地使基于视图的 NSTableView 内的控件(可能与其他控件一起在单元格中)成为第一响应者?


要解决这个问题,请在 NSTableView 上重写此方法:

@interface NSResponder (NSControlEditingSupport)

/* This is a responder chain method to allow controls to determine when they should become first responder or not. Some controls, such as NSTextField, should only become first responder when the enclosing NSTableView/NSBrowser indicates that the view can begin editing. It is up to the particular control that wants to be validated to call this method in its -mouseDown: (or other time) to determine if it should attempt to become the first responder or not. The default implementation returns YES when there is no -nextResponder, otherwise, it is forwarded up the responder chain. NSTableView/NSBrowser implements this to only allow first responder status if the responder is a view in a selected row. It also delays the first responder assignment if a doubleAction needs to (possibly) be sent. 'event' may be nil if there is no applicable event.
*/
- (BOOL)validateProposedFirstResponder:(NSResponder *)responder forEvent:(NSEvent *)event NS_AVAILABLE_MAC(10_7);

@end

并立即返回 YES 以允许快速创建firstResponder。如果点击文本字段,该表会“延迟”创建第一响应者,并且除非首先选择该行,否则不允许创建第一响应者。

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

在基于视图的 NSTableView 中,如何通过单击使控件成为第一响应者? 的相关文章

  • Objective-C 实例变量?

    我确信我在这里的困惑只是因为陷入 Java 思维方式 并且不理解 Obj C 在这种情况下有何不同 在Java中 我可以在类中声明一个变量 就像这样 并且每个instance该类的 将会有它自己的 MyClass String myVar
  • NSCollectionview didSelectItemsAt 没有被第二次调用

    我正在开发 mac os 应用程序 我使用 NSCollectionview 在某些时候我需要获取特定索引的数据 我已经实现了 didSelectItemsAt 委托方法 现在的问题是 当我第一次单击单元格时 它将执行 didSelectI
  • 自动布局和ios5

    我正在使用故事板 我已经使用了自动布局 但它不适用于 ios5 并且会崩溃 所以我想删除它 但是 如何取消选中自动布局 但如果我取消选中自动布局 我如何为 iPhone 4 和 5 设置屏幕 Regards 您可以在 IB 中禁用自动布局
  • 在适用于 Windows 和 Mac 的 VBA 中指定用户文件夹的路径

    我正在编写一个使用 VBA 从 Excel 生成文件的工具 生成的文件将写入用户的 Documents 文件夹中的文件夹 如果存在 e g C Users
  • 如何将 Spotlight for Help 插入本地化的 macOS 应用程序?

    我正在 macOS 上使用 Swing GUI 框架实现 Java 应用程序 当使用system外观和感觉以及screen菜单栏 Swing 自动插入一个搜索栏 called 聚光灯寻求帮助 https developer apple co
  • 增加 NSData 的长度

    基本上 我有一个 46 个字符的 NSString 我将其转换为 NSData 我需要将字符串填充到 48 个字符 仅在 NSString 末尾添加 是行不通的 所以 我只是使用以下方法增加了 NSData 的长度 NSString str
  • 在 Mac OS X 应用程序上找到 Core Data 的 sqlite 数据库

    在哪里可以找到 Mac OS X 应用程序的 Core Data sqlite 数据库 我找到了它 但它是 momd 文件夹 包含 3 个文件 VersionInfo plist mom omo 我怎样才能看到它的内容 在 OS X 10
  • Xcode MyProjectName-Bridging-Header.h 不存在

    我想开始在我的 Objective C 项目中使用 Swift 所以我添加了一个快速类 import Foundation objc class System NSObject objc func printSome println Pri
  • 具有非零“内容”的 QTMovieLayer 的 iOS 替代品?

    背景 QTKit QuickTime Kit 是一个来自 10 3 天的 Mac 框架 在 10 5 中添加了一些层 例如QTMovieLayer QTMovieLayer 的好处之一是您可以使用常规访问电影内容content图层上的属性并
  • 获取 Cocoa 中文件的类型

    我成功找到了指定文件的扩展文件类型 JPEG 图像 TIFF 图像等 但我正在寻找更通用的东西 可以对 大类别 中的文件进行分类 如图像 moovies 文本文件等 有没有办法在可可 或 Objective C 中实现这一点 感谢您的帮助
  • 无边框 NSButton 单击时变为灰色

    我正在使用三个带有图像集的 NSButton 制作一个小应用程序 这些按钮没有边框也没有背景 但是 当我单击按钮时 它会变成灰色矩形 我怎样才能解决这个问题 谢谢 让你的按钮类型为NSMomentaryChangeButton myBtn
  • 推送/呈现模态视图控制器

    我的视图控制器中有一个表 我们称之为 TVC1 我使用了 TVC1 中的行 以便用户除了 TVC1 上的数据之外还可以输入更多数据 因此 当有人点击 TVC1 中的特定行时 它将显示另一个视图控制器 我们称之为 TVC2 然而 当显示TVC
  • Parse.com - 获取 [PFUser currentUser] 中包含的指针数据

    我正在使用 Parse com iOS SDK 并且我不知道需要调用什么方法来确保 PFUser currentUser 包含其中包含的每个指针的数据 这可能很简单 但是 作为这个平台的初学者 我找不到解决方案 只是为了澄清一下 我试图在下
  • 以编程方式更改 UISlider 的范围

    如何以编程方式设置 UISlider 的最小最大范围 例如 虚拟代码 UISlider slider UISlider alloc init slider min 3 slider max 3 EDIT 所以我有以下内容 sl minimu
  • ObjC <-> Swift 桥接和工厂方法

    我想从 Swift 使用一些 Objective C 类 由于超出了这个问题范围的原因 我的班级init方法被标记为不可用 相反 有一个工厂方法 这是我的班级的简化形式 interface MyClass NSObject instance
  • 将第 3 方库添加到 iPhone 应用程序时如何设置“标题搜索路径”的路径

    我想添加第 3 方库语音转文本 https github com todoroo iPhone Speech To Textto my Xcode项目 我只是拖xcodeproj文件在我的 iPhone 项目中 然后我按照目标依赖项 将二进
  • 可可:NSView原点x在底部

    我正在以编程方式创建一个NSWindow以及其上的控件 看来原点 0 0 位于左下角 这对我来说很奇怪 来自其他 GUI 工具包 是否有一些标志 以便我可以更改它 使原点位于左上角 在 OS X 上 原点位于左下角 对于屏幕坐标和视图框架来
  • 如何将 Cocoa 应用程序移植到 iPhone-OS?

    我即将创建一个 Cocoa 应用程序 我想确保有一天我可以轻松地将它移植到 iPad 甚至 iPhone 我该如何提前计划 我知道我将不得不重做所有 NIB 并可能设计一个不同的工作流程 但是代码呢 仅仅用 UIsomething 替换每个
  • 将子视图发送到后面

    我正在尝试模仿 facebook ios 侧面菜单并让它工作 但是我遇到的问题是我无法将侧面菜单发送到后面 正如另一个问题中所讨论的那样使用 Objective C 的 iphone facebook 侧边菜单 https stackove
  • 使用“pythonw”(而不是“python”)运行应用程序时找不到模块

    我尝试了这个最小的例子 from flask import Flask app Flask name app route def hello world return Hello World if name main app run deb

随机推荐