我试图编写一个应该显示一些数据的应用程序。有问题的数据来自我们代码中的不同模块(用C语言编写,而不是ObjC),并且由于各种原因由字符串标识,而不是整数或其他形式的常量。在胶水代码之后,我在AppDelegate上有一个传入方法,如下所示:
-(void)newstringdata:(NSString*)data withLabel:(NSString*)label;
此方法应始终采用data
的值,并将其设置为UI中特定标签的文本。问题是,哪个标签。
我当然可以创建一个NSDictionary
并在运行时使用label
方法中的newstringdata:withLabel:
参数的可能值以及对商店的引用来填充它,但这看起来有些难看效率低下;它需要我维护出口,笔尖,和 NSDictionary
- 初始化代码。
相反,如果可能的话,我想在接口设计器的某个地方设置一个属性,然后根据传递的返回newstringdata:withLabel:
的标签在我的NSLabel
方法中进行查找。
这可能吗?如果是这样,我该怎么做?
答案 0 :(得分:0)
如果label的值永远不会包含斜杠(/),反斜杠(\)或冒号(:),则可以使用NSView的identifier属性。
在xib中,输入每个标签字符串作为NSTextViews的标识符(在Identity选项卡中,左起第3个选项卡)。
然后在你的代码中循环遍历所有视图并且:
if ([aView.identifier isEqualToString:label])
[aView setStringValue:data];