gpt4 book ai didi

objective-c - 未设置标签字符串

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

这适用于 Mac 应用程序,“setText”适用于 iOS

我通常将所有代码填充到 AppDelegate 类中,但我试图改变这一点,我认为这就是为什么我在处理如此基本的问题时遇到麻烦。

我创建了一个名为Calculate 的新NSObject 类,并创建了一个Label 和TextField。我已将标签连接到计算类,作为名为“summaryLabel”的导出。

在实现类中,我将标签设置为:

[summaryLabel setStringValue:@"TEST"];

什么也没发生!

我不知道为什么,但就像我说的,我正在尝试不同的类(class),所以我确信有些东西没有正确连接。有人知道吗?

提前感谢大家。

最佳答案

我猜您有两个 Calculate 类实例。您可能已经在 NIB 中实例化了一个,这就是您连接 socket 的方式。然后,您可以使用 [[Calculate alloc] init] 之类的代码实例化另一个。这是一个不同的对象。因为它不是来自 NIB 的,所以它的 socket 没有连接到任何东西。

您想要一个实例。如果它确实需要连接到 NIB 中的事物,那么它通常需要位于 NIB 中。 (NIB 可以有一些代理对象,例如文件所有者,它们没有在 NIB 中实例化,但您可以将它们连接到事物,并且当加载 NIB 时,这些连接将连接到真实对象。 )

如果您还需要一种方法来引用 NIB 中的实例,那么您需要从其他东西(可能是您的应用程序委托(delegate))到该实例的导出。

<小时/>

更新:

好的。因此,NIB 中有一个计算对象。那是真正的“冻干”物体。加载 NIB 后,该对象将被重构并建立其连接。

您还可以通过执行诸如 [[Calculate alloc] init] 之类的操作,在代码中单独实例化一个 Calculate 对象,对吗?这就是创建一个单独的对象。它不是 NIB 中的连接,您在 NIB 中设置的连接不会影响它。因此,它的 summaryLabel 实例变量只是 nil

您需要选择一种实例化对象的方法并坚持使用:

选项 1) 坚持使用 NIB 中的Calculate 对象。因此,请删除代码中分配并初始化新代码的部分。相反,只需引用加载 NIB 时创建的现有 NIB。你需要一个引用。因此,在您的应用程序委托(delegate)上创建一个 socket 以指向它并在 NIB 中连接它。

选项 2) 您坚持使用在代码中创建的 Calculate 对象。因此,请将其从您的 NIB 中删除。您在代码中创建的对象没有与标签的连接,因为它不是来自 NIB。因此,您必须在代码中设置与标签的连接,就像在代码中创建它一样。您需要引用标签。您可以将 socket 添加到应用程序委托(delegate)并将其连接到标签。然后,您的应用委托(delegate)可以执行 calculateObject.summaryLabel = summaryLabel; 来告诉 Calculate 它已创建有关标签的对象。

关于objective-c - 未设置标签字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10520898/

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