2014-02-19 40 views
0

我分類NSWindow(命名爲IMWindow)使我自己的屬性。現在我想將NSTextField的值綁定到IMWindow的其中一個屬性。我知道這是可能的NSUserDefaults控制器或應用程序委託。但它不提供NSWindow的選項。如何在Interface Builder中將值綁定到NSWindow的屬性?

我想看看我是否可以將該值綁定到任意對象。

截圖:

enter image description here

代碼:

@interface IMMainWindow() 
@property (nonatomic, strong) NSString *line1Text; 
@end 

這是很難找到在Interface Builder任何先進的材料爲OS X: -/

回答

2

可可使用MVC (Model-View-Controller)模式。您應該將文本字段的值綁定到控制器,而不是窗口本身。不要繼承子類NSWindow - 使用XIB創建NSWindowController子類(因此窗口控制器將成爲文件所有者),然後將line1Text屬性添加到NSWindowController子類,並將文本字段綁定到XIB中的文件所有者對象。

0

我同意indragie's answer。這就是說,有可能做到,你在問什麼。

首先,您必須設置您的IMWindow.xib的自定義類。要做到這一點,在左側選擇窗口,點擊藍色的右側突出的圖標,並輸入你的類名: Xcode interface builder

當做到這一點,你必須爲你的NSTextField此創建一個屬性是通過選擇文本字段並單擊頂部中的中間圖標(具有弓形和按鈕的圖標)來完成的。選擇右側突出顯示的藍色圖標(帶箭頭的圓圈)。現在按下「New Reference Outlet」(新參考出口)行上的圓圈,然後將鼠標拖入IMWindow的頭文件中。 Xcode interface builder

就是這樣!您的NSTextField現在綁定到IMWindow類。

但請記住:您應該考慮使用NSWindowController代替!

+0

謝謝!我知道如何綁定outlet,但不知道綁定的價值(因爲我熟練掌握iOS,但對OS X是新手)。這是否意味着我無法綁定到任意對象?對象是否有任何限制? – HKTonyLee

+0

對不起人。我誤解了你的問題。你有沒有試過這個:http://stackoverflow.com/a/14079680/1118969?如果在選擇NSTextField時從右側選擇第二個圖標,我可以看到'Value'下有很多綁定設置。 –

相關問題