我正在運行一個使用IBInspectable屬性的小複雜事件,並不確定它是否可能與我的xibs和xib用法有關。我試圖重複使用多個視圖控制器之間的自定義控件。控制是一個自定義標籤管理器:IBInspectable屬性值不在xib中更新
的IBInspectable屬性在此配置XIB爲:第一,第二,第三。
以下是頭文件的相應代碼。
IB_DESIGNABLE
@interface TabContainerView : NSView
@property (nonatomic, strong) IBOutlet NSView *view;
@property (weak) IBOutlet TabContentView *contentView;
@property (weak) IBOutlet TabView *firstTab;
@property (weak) IBOutlet TabView *secondTab;
@property (weak) IBOutlet TabView *thirdTab;
@property (nonatomic, strong) IBInspectable NSString *tabOneText;
@property (nonatomic, strong) IBInspectable NSString *tabTwoText;
@property (nonatomic, strong) IBInspectable NSString *tabThreeText;
@end
#import "TabContainerView.h"
@interface TabContainerView()
@property (nonatomic, strong) NSMutableArray *tabsArray;
@property (nonatomic, assign) NSInteger selectedTabIndex;
@property (weak) IBOutlet NSTextField *tabOneTextField;
@property (weak) IBOutlet NSTextField *tabTwoTextField;
@property (weak) IBOutlet NSTextField *tabThreeTextField;
@end
@implementation TabContainerView
#pragma mark Init
- (id)initWithFrame:(NSRect)frameRect {
NSString* nibName = NSStringFromClass([self class]);
self = [super initWithFrame:frameRect];
if (self) {
if ([[NSBundle mainBundle] loadNibNamed:nibName
owner:self
topLevelObjects:nil]) {
[self configureView];
}
}
return self;
}
#pragma mark Configure View
- (void)configureView{
[self.view setFrame:[self bounds]];
[self addSubview:self.view];
self.tabOneTextField.stringValue = self.tabOneText;
self.tabTwoTextField.stringValue = self.tabTwoText;
self.tabThreeTextField.stringValue = self.tabThreeText;
}
@end
這可以在TabContainerView.xib中正常工作,沒有問題。現在當我試圖在兩個不同的視圖控制器中使用這個控件時,我遇到了問題。我的兩個視圖控制器也是從Xib加載的。
在視圖控制器1我有這樣的事情:
在我的子類的自定義視圖的TabContainerView子當我運行的應用程序,它工作得很好視圖控制器1。我也改變了這個視圖控制器的文本。 List,Map,Filter是視圖控制器1的IBInspectable屬性值。在視圖控制器2(未顯示)中,我做了完全相同的事情,但是不同的IBInspectable屬性值特定於視圖控制器2.但是,當我運行應用程序時,值永遠不會更新並始終保持爲第一,第二和第三。我不確定是否有我正在做的事情導致這個問題,但任何幫助或提示將不勝感激。 (IBDesignable似乎給了我很多警告,它在哪裏打破,不知道它是否只是加載xib的最後保存的值。)
如果視圖控制器1確實工作並且視圖控制器2沒有,您必須找到差異。 – Willeke
你是否對視圖控制器有很多警告? – Willeke