按字符串在NIB内搜索NSView

时间:2015-04-17 13:21:08

标签: macos cocoa

我试图编写一个应该显示一些数据的应用程序。有问题的数据来自我们代码中的不同模块(用C语言编写,而不是ObjC),并且由于各种原因由字符串标识,而不是整数或其他形式的常量。在胶水代码之后,我在AppDelegate上有一个传入方法,如下所示:

-(void)newstringdata:(NSString*)data withLabel:(NSString*)label;

此方法应始终采用data的值,并将其设置为UI中特定标签的文本。问题是,哪个标签。

我当然可以创建一个NSDictionary并在运行时使用label方法中的newstringdata:withLabel:参数的可能值以及对商店的引用来填充它,但这看起来有些难看效率低下;它需要我维护出口,笔尖, NSDictionary - 初始化代码。

相反,如果可能的话,我想在接口设计器的某个地方设置一个属性,然后根据传递的返回newstringdata:withLabel:的标签在我的NSLabel方法中进行查找。

这可能吗?如果是这样,我该怎么做?

1 个答案:

答案 0 :(得分:0)

如果label的值永远不会包含斜杠(/),反斜杠(\)或冒号(:),则可以使用NSView的identifier属性。

在xib中,输入每个标签字符串作为NSTextViews的标识符(在Identity选项卡中,左起第3个选项卡)。

然后在你的代码中循环遍历所有视图并且:

if ([aView.identifier isEqualToString:label])
  [aView setStringValue:data];