2011-09-11 25 views
1

我有一個筆尖,它有一個我希望相關控制器可以訪問的按鈕。但現在的主人是一個通用的NSViewController了,裏面的AppDelegate我的筆尖分配給像控制器:我可以在沒有指定控制器的情況下在.nib中定義一個插座嗎?

[browseViewController initWithNibName:@"BrowseView" bundle:[NSBundle mainBundle]]; 

但有可能筆尖文件內一般分配一個按鈕的引用插座?換句話說,給插座一個名字並指向文件的所有者,然後如果/當筆尖連接到控制器,如果該控制器有一個同名的插座,它就可以工作?

回答

1

文件所有者必須在IB中連接時具有特定的出口和/或動作。即使你可以將它連接到一個不存在的插座,當筆尖被加載時也會引發異常。我想檢查它做出口,將它連接到一個對象,保存筆尖,從對象中刪除插座並運行應用程序。將引發NSUnknownKeyException。

最簡單的方法是使用控制器的公共超類。如果控制器不能從共同的祖先派生出來,我看到的唯一解決方法就是制定一個協議,在其中定義出口屬性和操作。請符合協議

MyObject來的對象:NSObject的< MyNibProtocol>

現在使用這個對象在筆尖連接出口和動作。 但是,屬性和方法不能是可選的,你必須實現它們。

相關問題