在.nib/.xib中是否有任何类型的id可以通过xcode使用和设置,这些id可以在运行时查询以从代码中标识特定的视图实例?
特别是当在我们的接口中有同一nsview子类的多个副本时,我们如何判断当前正在查看的是哪一个?

最佳答案

泛型对象不能在接口生成器中设置其NSView属性。tag上的tag方法是只读方法,只能在NSView的子类中实现。NSView不实现NSView方法。
我怀疑其他的答案是指setTag:的实例,它定义了一个NSControl方法,并且有一个interface builder字段允许您设置标记。
使用泛型视图可以使用用户定义的运行时属性。这允许您在视图对象中预先设置属性值。因此,如果您的视图定义了这样的属性:

@property (strong) NSNumber* viewID;

然后,在接口生成器中的身份检查器的用户定义的属性部分中,您可以添加具有密钥路径-setTag:、类型viewID和值Number的属性。
在视图的123方法中,可以访问属性的值。您将发现在上面的示例中,视图的-awakeFromNib属性将被预先设置为viewID

关于objective-c - NSViews上的唯一ID,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8492918/

10-14 03:52