objective-c - 从窗口获取对象 Cocoa

标签 objective-c macos cocoa

从窗口获取对象的最佳方式是什么。我有一个由 81 个 NSTextFields 组成的类似数独的网格,我更喜欢简单地拥有一个 NSTextFields 数组,而不是通过 IBOutlet 链接的 81 个单独的 NSTextFields。 例如:如果有一种方法可以向 NSWindow 发送消息,例如 getObject: (NSString*) title,然后使用 for 循环将这些 NSTextField 添加到 NSMutableArray,那就太理想了。任何建议将不胜感激!

-卢克

最佳答案

您可以执行以下操作:

NSArray *subviews = [_window subViews];
for(NSView *subview in subviews)
{
  if( [subview isKindOfClass:[NSTextField class]] )
  {
     [_textFields addObject:subview];
  }
}

在-awakeFromNib

现在,我认为你不应该这样做。创建一个自定义 NSView 来充当“数独” View 将更容易在代码中使用,并且可以更好地提高应用程序的性能。加载带有 81 个文本字段的窗口是相当繁重的 + 使用更多的内存。

关于objective-c - 从窗口获取对象 Cocoa,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8636774/

相关文章:

ruby - 如何更改 Textmate 使用的 Ruby 版本?

ios - cloudkit: validate a developer ID-signed application error: the archived application has entitlements that require Mac app store 分布

iphone - 导航 Controller 之间的自定义转换

objective-c - Mac应用商店: Technical vs Ethical Submission Guidelines

objective-c - 确保初始化期间属性存在的最佳方法是什么?

ios - self.variable 和 _variable 的区别,关于 KVO

iphone - 需要 Objective-C 设计帮助,可能需要协议(protocol)?

ios - UIFont fontWithSize:更改fontName

macos - 更新 NSTableView 单元格编辑上的数据源

ios - 架构 x86_64 的重复符号