cocoa - 是否可以使用标签访问窗口上的所有 gui 组件

标签 cocoa

我希望使用标签访问窗口上的所有 gui 组件。 但我发现有些组件是在窗口的 subview 中,所以

NSButton *aButton=(NSButton*)[self.window.contentView viewWithTag:tag];

将返回0x0,我必须将按钮的 super View 从“self.window.contentView”更改为包含NSButton的 subview

有没有通用的方法可以使用标签访问窗口上的所有 gui 对象,当我使用时它会识别并设置每个 gui 组件的正确的 super View

NSObject *a=(NSObject*)[recognizedSuperView viewWithTag:tag];

访问它们?

最佳答案

viewWithTag: 仅返回设置了标签的直接 subview 。如果您想导航 View 层次结构,那么您应该实现一个递归方法来执行此操作,但请注意,您可以在树中的许多可能位置找到相同的标记值。

关于cocoa - 是否可以使用标签访问窗口上的所有 gui 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7805182/

相关文章:

macos - 没有 Storyboard或使用 Swift 的 xib 文件的 OSX 应用程序

objective-c - 恢复之前删除的 NSView

cocoa - 辅助功能 API - 将键盘焦点设置到特定元素

objective-c - 在 NSString 中查找非常量 char.set

objective-c - 我如何知道哪个事件导致了对 IBAction 的调用?

cocoa - NSTextField 和自动布局 : Autogrow height -> Programmatically

cocoa-touch - NSDirectoryEnumerator : are the returned path relative?

cocoa - 视觉格式语言 - 填充区域

objective-c - 将数据添加到 plist

objective-c - 使用 ieee-754 或二进制补码将 NSData 转换为原始变量?