2012-05-09 87 views
0

這是一個Mac的應用程序,「的setText」是針對iOS標籤字符串沒有被設置

我平時的東西在AppDelegate類的所有代碼,但我想改變這一點,我想這就是爲什麼我有遇到如此基本的問題。

我做了一個名爲Calculate的新NSObject類,並創建了一個Label和TextField。我已將標籤連接到Calculate類作爲名爲「summaryLabel」的出口。

在實現類我然後設置標籤,像這樣:

[summaryLabel setStringValue:@"TEST"]; 

什麼也沒有發生!

我不知道爲什麼,但就像我說我正在嘗試不同的類,所以我確定某些東西沒有正確地加入。有人有什麼主意嗎?

在此先感謝大家。

+1

您是否嘗試記錄標籤?你能提供更多的代碼嗎? –

+0

在實現中你試圖設置值的地方,代碼在哪裏? – lukecampbell

+0

@JohannesLumpe我記錄了標籤ID,它返回null – Cristian

回答

1

我猜你有兩個Calculate類的實例。你可能在NIB中實例化了一個,這就是你連接網點的方式。然後你可能會使用類似[[Calculate alloc] init]的代碼來實例化另一個代碼。這是一個不同的對象。因爲它不是來自NIB的,它的網點沒有連接任何東西。

你想有一個實例。如果它確實需要連接到NIB的東西,那麼它通常需要在NIB中。 (筆尖可以有一些代理對象,如文件的所有者,這是不在NIB實例但你可以將它們連接起來的東西和筆尖被加載時,這些連接將連接到真正的對象。)

如果你還需要一種方法來引用NIB中的實例,那麼你需要一個來自其他東西的插座,可能是你的應用程序委託。


更新:

確定。所以,你在NIB中有一個Calculate對象。這是一個真正的「凍幹」物體。當NIB被加載時,該對象被重構並且它的連接被建立。

你也可以單獨通過做一些類似[[Calculate alloc] init]的實例化代碼中的Calculate對象,對吧?這是創建一個單獨的對象。這不是NIB中的那個,你在NIB中建立的連接不會影響它。所以,它的summaryLabel實例變量只是nil

你需要選擇實例化對象的一種方式,並堅持下去:

選項1)你堅持在筆尖Calculate對象。因此,請在您的代碼中刪除您分配的部分並初始化一個新部分。相反,只需引用在加載NIB時創建的現有對象。你需要一個參考。因此,在您的應用程序委託上創建一個指向它的連接並將其連接到NIB。

選項2)您堅持使用您在代碼中創建的Calculate對象。所以,從你的NIB中刪除一個。您在代碼中創建的對象沒有與標籤的連接,因爲它不是來自NIB。因此,您必須在代碼中設置與標籤的連接,就像您在代碼中創建的那樣。您需要參考標籤。您可以爲應用程序代理添加插座並將其連接到標籤。然後,您的應用程序代理可以執行calculateObject.summaryLabel = summaryLabel;以告知Calculate對象它已創建關於標籤的對象。

+0

我沒想到我正在實例化NIB,在我的App Delegate類中,我實例化了Calculate類並從中運行了一個方法。正是在這個方法中,我設置了標籤的文字。這些幫助有用?感謝您的答覆! – Cristian

+1

您說過:「我已將標籤連接到Calculate類作爲名爲'summaryLabel'的出口。」如果NIB中沒有'Calculate'對象,那是什麼意思?你如何連接'summaryLabel'?如果它在代碼中,則更新您的問題以顯示該代碼。 –

+0

Nib中有一個Calculate對象,我已將標籤附加到它,我不明白我做了什麼錯誤 – Cristian

相關問題