gpt4 book ai didi

objective-c - setStringValue 与 void 方法

转载 作者:行者123 更新时间:2023-12-03 17:03:59 30 4
gpt4 key购买 nike

我有一个按钮 (IBAction),当我单击该按钮时,标签将会更改 (setStringValue)。工作完美。

有没有办法使用 (void) 方法更改标签 (setStringValue),因此该方法不是 IBAction 。因为如果我调用该方法什么也不会发生?代码如下所示。

//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!"];
}

我需要做什么才能使这项工作成功?谢谢!

最佳答案

IBAction 方法是void。没有发生任何事情的原因与您想象的不同:这不是因为该方法是 void,而是因为您调用该方法的实例是错误的。

您的setLabel方法创建MyClass的新实例。这不是在屏幕上显示真正的 labelB 的类。

您需要在拥有标签的同一对象上调用该方法并运行 setLabel: 方法。在 Objective C 中,这个对象由一个名为 self 的特殊变量表示。如果将方法重写如下

-(IBAction)setLabel:(id)sender{
[labelA setStringValue:@"Works!"];
[self methodSetLabel];
}

它应该可以工作。

关于objective-c - setStringValue 与 void 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16383344/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com