Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 从窗口获取对象_Objective C_Macos_Cocoa - Fatal编程技术网

Objective c 从窗口获取对象

Objective c 从窗口获取对象,objective-c,macos,cocoa,Objective C,Macos,Cocoa,从窗口获取对象的最佳方式是什么。我有一个类似数独的由81个NSTextFields组成的网格,我更喜欢简单地拥有一个NSTextFields数组,而不是通过IBOutlets链接的81个单独的NSTextFields。 例如:如果有一种方法可以将消息发送到NSWindow,例如getObject:(NSString*)title,然后使用For循环将这些NSTextFields添加到NSMutableArray,那么这将是理想的方法。如有任何建议,将不胜感激 -卢克您可以执行以下操作: NSAr

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


-卢克

您可以执行以下操作:

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


至于唠叨,我认为你不应该这样做。创建一个自定义的NSView作为“数独”视图将更易于在代码中使用,并有利于提高应用程序的性能。加载包含81个文本字段的窗口相当繁重,而且会占用大量内存。

您可以执行以下操作:

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


至于唠叨,我认为你不应该这样做。创建一个自定义的NSView作为“数独”视图将更易于在代码中使用,并有利于提高应用程序的性能。加载包含81个文本字段的窗口相当繁重,而且会占用大量内存。

我觉得使用一组NSTEXTFIELDCELL会更好


矩阵是单个对象,您可以使用单个出口连接(或其他属性)引用它,它知道行和列(因此无需将它们转换为线性索引)。您还可以访问其单个单元格以单独配置它们;例如,设置填充值并禁用这些单元格,以便用户无法更改它们。

在我看来,使用NSTEXTFIELDCELL会更好


矩阵是单个对象,您可以使用单个出口连接(或其他属性)引用它,它知道行和列(因此无需将它们转换为线性索引)。您还可以访问其单个单元格以单独配置它们;例如,设置填充值并禁用这些单元格,以便用户无法更改它们。

好的,没问题,我准备将其放在另一个视图中,并添加一个视图控制器,以使其更模块化和更可扩展。我只是想知道我是否可以直接从窗口/视图而不是使用IBOutlets获取对象。谢谢-LukeOk,没问题,我正要把它放在另一个视图中,并添加一个视图控制器,使它更模块化和更可伸缩。我只是想知道我是否可以直接从窗口/视图而不是使用IBOutlets获取对象。谢谢-卢克