简体   繁体   English

[UIView setText:]:无法识别的选择器已发送到实例0x89625d0

[英][UIView setText:]: unrecognized selector sent to instance 0x89625d0

I was trying to add a customized checkbox to my view...I draw a view on my storyboard and with the help of a third party code named UICheckbox I am accessing it. 我试图在视图中添加自定义复选框...我在情节提要上绘制视图,并借助名为UICheckbox的第三方代码来访问它。

UICheckbox.h UICheckbox.h

#import <UIKit/UIKit.h>

@interface UICheckbox : UIControl

-(void)setChecked:(BOOL)boolValue;
-(void)setDisabled:(BOOL)boolValue;
-(void)setText:(NSString *)stringValue;

@property(nonatomic, assign)BOOL checked;
@property(nonatomic, assign)BOOL disabled;
@property(nonatomic, strong)NSString *text;

@end

UICheckbox.m UICheckbox.m

#import "UICheckbox.h"

@interface UICheckbox (){
    BOOL loaded;
} 

@property(nonatomic, strong)UILabel *textLabel;

@end



@implementation UICheckbox
@synthesize checked = _checked;
@synthesize disabled = _disabled;
@synthesize text = _text;
@synthesize textLabel = _textLabel;

- (void)awakeFromNib {
    self.backgroundColor = [UIColor clearColor];
}

-(void)drawRect:(CGRect)rect {
    UIImage *image = [UIImage imageNamed:[NSString    stringWithFormat:@"uicheckbox_%@checked.png", (self.checked) ? @"" : @"un"]];
    [image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];

    if(self.disabled) {
        self.userInteractionEnabled = FALSE;
        self.alpha = 0.7f;
    } else {
        self.userInteractionEnabled = TRUE;
        self.alpha = 1.0f;
    }

    if(self.text) {
        if(!loaded) {
            _textLabel = [[UILabel alloc] initWithFrame:CGRectMake(self.frame.size.width +  5, 0, 1024, 30)];
            _textLabel.backgroundColor = [UIColor clearColor];
            [self addSubview:_textLabel];

            loaded = TRUE;
        }

        _textLabel.text = self.text;
     }
}

-(BOOL)beginTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event {
    [self setChecked:!self.checked];
    return TRUE;
}

-(void)setChecked:(BOOL)boolValue {
    _checked = boolValue;
    [self setNeedsDisplay];
}

-(void)setDisabled:(BOOL)boolValue {
    _disabled = boolValue;
    [self setNeedsDisplay];
}

-(void)setText:(NSString *)stringValue {
    _text = stringValue;
    [self setNeedsDisplay];
}

@end

in my viewDidLoad ... 在我的viewDidLoad ...

self.checkbox.text = @"Want to get the updates directly";

and I implemented the action as like this 我像这样执行动作

-(IBAction)testCheckbox:(id)sender {
    NSLog(@"checkbox.checked = %@", (self.checkbox.checked) ? @"YES" : @"NO");
}

From the view of storyboard....I lined up the outlet and Touched up to the respective messages and getting this error.. 从情节提要的角度来看。...我排好出口,摸了摸各自的信息,并得到此错误。

Please help... 请帮忙...

This is pretty simple but I got that exact same error when I changed the outlet type in the code - it looked like it was still connected in the storyboard, but it was not. 这很简单,但是当我在代码中更改插座类型时,我得到了完全相同的错误-看起来它仍连接在情节提要中,但事实并非如此。 I just had to reconnect the outlet (for example, label) in the storyboard to the code outlet. 我只需要将情节提要中的插座(例如,标签)重新连接到代码插座即可。 You would not think to this because the outlet is still marked connected, but it is not if you had made a change. 您不会考虑这一点,因为插座仍标记为已连接,但如果您进行了更改,则不会。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM