2013-03-07 76 views
1

我有用於iOS和Mac OS的控制庫。它的實現如下:界面生成器/跨平臺中的自定義UIView

#if TARGET_OS_IPHONE 

#import <UIKit/UIKit.h> 

@interface MyCustonControl : UIControl 
... 
@end 

#else 

#import <Cocoa/Cocoa.h> 

@interface MyCustomControl : NSControl 
... 
@end 

#endif 

這工作正常,如果我在視圖控制器中構建控件。如果我嘗試使用Interface Builder,我永遠不能將UIView的自定義類設置爲MyCustomControl。它顯示在列表中,我可以輸入它,但如果我專注於其他內容,然後再次聚焦視圖,自定義類已恢復爲UIView。

我已經在兩個實現中實現了initFromCoder,只是爲了確保它不是那樣。

任何解決這個問題的方法? IB是不是很奇怪,還是應該以不同的方式定義我的課程?

回答

1

您不能將自定義類設置爲您的控件,因爲自定義類需要是UIView/NSView的子類,而UIControl/NSControl是UIView/NSView的父類。您應該將您的定義更改爲

@interface MyCustomControl : UIView 
... 
@interface MyCustomControl : NSView 
相關問題