簡體   English   中英

iOS -custom xib文件未顯示為UITextField的inputAccessoryView

[英]iOS -custom xib file not appearing as inputAccessoryView of UITextField

我正在觀看視頻 (除了用IB中的代碼而不是IB鏈接自定義視圖外),但我將解釋發生了什么。 我創建了一個自定義視圖,擴展了UiView。 它是從xib文件創建的。 這是interfacebuilder中的xib文件的照片:

在此處輸入圖片說明

請注意,文件所有者已經鏈接到我的自定義類。

現在,我將向您展示我的自定義課程:

#import "CostcoLoginView.h"

@implementation CostcoLoginView

-(id)initWithFrame:(CGRect)frame{

    self = [super initWithFrame:frame];
    if(self){

    }
    return self;
}


-(id)initWithCoder:(NSCoder *)aDecoder{

    self=[super initWithCoder:aDecoder];
    if(self){
        [[NSBundle mainBundle] loadNibNamed:@"CostcoLoginView" owner:self options:nil];

    [self addSubview:self.view];
    }
    return self;
}




@end

這是我的自定義視圖的頭文件:

#import <UIKit/UIKit.h>

@interface CostcoLoginView : UIView
@property (strong, nonatomic) IBOutlet UIView *view;



@end

注意我擁有的一個屬性:這是一個鏈接到上圖所示的interfacebuilder xib文件的視圖。

到目前為止,一切看起來都不錯。 我現在的目標是使用此自定義UIView作為我擁有的UITextFieldinputAccessoryView 這是部分代碼:

 usernameField.inputAccessoryView = [[CostcoLoginView alloc] init ];

為什么這不起作用? 什么也沒出現。 是因為我要初始化自定義視圖嗎? 當我簽入模擬器時,什么都沒有出現。 我試圖切換鍵盤,但是什么也沒出現。 應用程序的其余部分工作正常,但未顯示我的自定義視圖。

調用init時,您尚未添加子視圖,而忘記了在xib中設置視圖框架。 因此您可以將代碼更改為此並嘗試。

 #import "CostcoLoginView.h"

@implementation CostcoLoginView

-(id)initWithFrame:(CGRect)frame{

    self = [super initWithFrame:frame];
    if(self){
        [self setup];
    }
    return self;
}


-(id)initWithCoder:(NSCoder *)aDecoder{

    self=[super initWithCoder:aDecoder];
    if(self){
        [self setup];
    }
    return self;
}
-(id)init{
    self = [super init];
    if (self) {
        [self setup];
    }
    return self;
}
-(void)setup{
    [[NSBundle mainBundle] loadNibNamed:@"CostcoLoginView" owner:self options:nil];
    self.view.frame  = self.bounds;
    [self addSubview:self.view];
}

@end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM