我有一个严重的问题,一个由XIB文件定义的视图.这是一个简单的数字输入板,按钮为0-9:
问题是在极少数情况下(如上面的屏幕截图所示),缺少按钮标签.它并不总是相同的标签(在上面的示例中,缺少"0").通常关闭视图并重新创建它可以解决问题.
XIB文件的按钮附加到视图中的UIButton控件.视图构造如下:
@property (nonatomic,strong) IBOutlet UIButton *button0; // etc... @property (nonatomic,strong) IBOutlet UIButton *button9; - (id)initWithFrame:(CGRect)frame { self = [[UINib nibWithNibName:[[self class] description] bundle:nil] instantiateWithOwner:nil options:nil ][0]; if (self) { self.frame = frame; // ... } return self; }
没有涉及控制器,我也不想这样.
该视图是使用以下代码创建的:
CustomView *view = [[CustomView alloc] initWithFrame:frame];
当问题发生时(通常不是随机的),用户点击带有缺失标签的按钮,按钮的titleLabel.text属性为nil
:
- (IBAction) numberButtonPressed:(UIButton *)button { NSLog("button label = %@",button.titleLabel.text); // output: button label = (null) }
XIB文件的XML:
我不知道为什么会出现这个问题,我在这里或网上的任何其他地方都找不到类似的报道.