objective-c - 确定哪个 NSView 实例发起了 mouseDown :

标签 objective-c cocoa reflection nsview introspection

我有一个带有 25 个 myGameTile block 的游戏板,它是 NSView 的子类。 在 mouseDown 中:我想确定我单击了哪个图 block ,并将 ivar 设置为代表值。

例如如果我单击图 block 12,请将 clickedTile 设置为“12”或唯一代表该特定实例的某个值。

我会打开从整数值 12 一直到某种内省(introspection)/反射(reflection)的任何内容,尽管内置功能和优雅比黑客、运行时包装和修改更可取。不过,我知道我可能别无选择,只能依赖这些解决方案,所以也请回答这些问题。我想知道我所有的选择。谢谢!

最佳答案

您可以子类化 NSView 并覆盖 tag method ,如文档中所写。

关于objective-c - 确定哪个 NSView 实例发起了 mouseDown :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1045086/

相关文章:

iphone - 如何在iPhone中单击按钮时打开网址

ios - 如何在 iOS 7 的 UIAlertView 中添加 subview ?

macos - 我如何向其他 Cocoa 应用程序发出首选项已更改的信号?

java - 获取 java.lang.Class 实例时未经检查或不安全的操作

java - Spring - 获取拦截器/过滤器中给定请求的方法

iphone - 使用 XCODE 进行纯 Objective C 编程?

ios - 无法拖动或移动自定义 NSWindow

macos - 是否可以使用 Preview.app 在特定页面打开 PDF?

Java - 反射 - 如何调用复制构造函数?

ios - UIDatePicker EventValueChanged 未显示实际日期/时间