【问题标题】:iOS -custom xib file not appearing as inputAccessoryView of UITextFieldiOS - 自定义 xib 文件未显示为 UITextField 的 inputAccessoryView
【发布时间】:2015-05-08 01:47:16
【问题描述】:

我正在关注这个video(除了我在代码中链接自定义视图而不是在 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 作为 inputAccessoryViewUITextField 我有。这是部分代码:

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

为什么这不起作用?什么都没有出现。是因为我如何初始化自定义视图吗?当我签入模拟器时,什么也没有出现。我尝试切换键盘,但没有出现。应用程序的其余部分工作正常,但我的自定义视图没有出现。

【问题讨论】:

    标签: ios iphone xcode uiview interface-builder


    【解决方案1】:

    调用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
    

    【讨论】:

      猜你喜欢
      • 2014-11-25
      • 2020-05-07
      • 1970-01-01
      • 2015-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多