Objective c 使用void方法设置字符串值
我有一个按钮(Objective c 使用void方法设置字符串值,objective-c,cocoa,Objective C,Cocoa,我有一个按钮(iAction),当我单击该按钮时,标签将更改(setStringValue)。 工作完美 是否有一种方法可以使用(void)方法更改标签(setStringValue),从而使该方法不是iAction。因为如果我调用这个方法,什么都不会发生?代码如下所示 //IBAction method, label is changed to setLabelMethod, works perfect. -(IBAction)setLabel:(id)sender{ [labelA s
iAction
),当我单击该按钮时,标签将更改(setStringValue
)。
工作完美
是否有一种方法可以使用(void
)方法更改标签(setStringValue
),从而使该方法不是iAction
。因为如果我调用这个方法,什么都不会发生?代码如下所示
//IBAction method, label is changed to setLabelMethod, works perfect.
-(IBAction)setLabel:(id)sender{
[labelA setStringValue:@"Works!"];
ClassName *MyClass = [[ClassName alloc]init];
[MyClass methodSetLabel]
}
//void method, nothing happens
-(void)methodSetLabel{
[labelB setStringValue:@"Works!"];
}
我该怎么做才能让这一切顺利进行?
谢谢
iAction
方法是void
。没有发生任何事情的原因与您所想的不同:这不是因为该方法是void
,而是因为您调用该方法的实例是错误的
您的setLabel
方法创建了MyClass
的新实例。屏幕上显示的不是真正的labelB
您需要在拥有标签并运行setLabel:
方法的同一对象上调用该方法。在目标C中,该对象由一个名为self
的特殊变量表示。如果您按照以下方式重写该方法
-(IBAction)setLabel:(id)sender{
[labelA setStringValue:@"Works!"];
[self methodSetLabel];
}
它应该能用。谢谢,它能用!但是如何从另一个类调用相同的methodSetLabel。我有一个myView课程。在这个类(myView)中,我有一个键盘事件方法。因此,如果按下一个键,则必须调用methodSetLabel方法,并且必须更改标签。我试过这个:[self-methodSetLabel];但我得到了一个错误:“MyView的No visible@interface声明了选择器setStringValue。@Pidaji若要更改另一个类的标签,该另一个类的对象必须访问包含需要更改的标签的对象。该实例可以在初始化时传入,也可以通过某个已知位置获取(例如单身人士)。再次感谢!请原谅我的知识不足。我对objective-c/cocoa很陌生。你能告诉我如何通过初始化传递实例吗?@Pidaji我宁愿避免在评论中进行长时间的讨论。这将是一个不同的问题,你应该单独问。这将让你从能够如果你能理解你原来的问题的答案,请考虑通过点击复选标记来接受答案。