2011-06-27 38 views
0

我在MainMenu.xib中有一個自定義視圖,它將包含2個子視圖。這些子視圖應該從一些具有單個NSView的xib文件加載。 我該怎麼做? 包含IBOutlet和IBActions的類對於每個應從哪個類繼承的xib?對於每個xib,我必須將文件所有者設置爲包含出口/動作的類?使用NSView加載Xib文件

+0

好的,我做到了:) – a438

回答

-1

您的自定義視圖或主菜單的頭文件應該包括您提到的2個子視圖,並且您應該將它們列爲IBOutlet成員和IBOutlet屬性。 (不要忘記綜合!)

在你的xib文件中,你應該能夠拖入2個NSView,然後將他們的類設置爲你的2個子類,然後通過從'文件所有者'拖動到對象「列表中的對象。

+0

也許我沒有解釋得很好......我想從xib文件中加載2個NSViews MainMenu.xib(由xcode創建)。這mainMenu.xib包含一個NSView,我想加載前面提到的2個xib。我正在爲mac開發 – a438

+0

另外我想知道將一個類與Outlets/Actions鏈接到xib文件的最佳/正確方法(並在IB中查看它們)。我應該在文件所有者中設置我的自定義類還是拖動NSObject(來自IB的對象庫)? – a438

+0

您的第一條評論:是的,我寫了UIView而不是NSView ...但它們基本上是一樣的,我寫的東西應該仍然有效。第二條評論:由於你的子類繼承自NSView,如果你拖動一個NSView對象到Interface Builder中,然後將它們的類設置爲你的子類的類(在身份檢查器選項卡上),那麼它們應該可以正常工作。當然,您仍然需要在主菜單的loadView :(或類似的)方法中初始化它們。 – Luke

0

您可以使用:

- (BOOL)loadNibNamed:(NSString *)nibName 
       owner:(id)owner 
    topLevelObjects:(NSArray * _Nonnull *)topLevelObjects 

加載您的廈門國際銀行的文件,該topLevelObjects參數是通過引用傳遞數組,調用該函數後,將包含對象的數組從廈門國際銀行,你所感興趣的東西在這裏是一個NSView類型的對象,你可以添加視圖到任何你想要的地方