Ios 按钮标题文本不存在';不清楚
我有Ios 按钮标题文本不存在';不清楚,ios,objective-c,string,Ios,Objective C,String,我有BtnDate按钮,当点击时,操作工作并通过弹出窗口获取当前日期,并在BtnDate.titleLabel.text中添加,当我在btnAddForm操作中使用时,检查\u myText是否大于清除\u BtnDate.titleLabel.text 但是它不会清除标题标签文本字符串 我的代码如下 如果\u BtnDate的用户条目\u myTextinside>0值为空,我希望 我的全部代码如下: .h文件内部: @property (nonatomic,retain) IBOutlet
BtnDate
按钮,当点击时,操作工作并通过弹出窗口获取当前日期,并在BtnDate.titleLabel.text
中添加,当我在btnAddForm
操作中使用时,检查\u myText
是否大于清除\u BtnDate.titleLabel.text
但是它不会清除标题标签
文本字符串
我的代码如下
如果\u BtnDate
的用户条目\u myText
inside>0值为空,我希望
我的全部代码如下:
.h文件内部:
@property (nonatomic,retain) IBOutlet UIButton* BtnDate;
- (void)viewDidLoad
{
[super viewDidLoad];
[_BtnDate addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside];
_BtnDate.titleLabel.font = [UIFont systemFontOfSize:17];
[[_BtnDate layer] setBorderWidth:1];
[[_BtnDate layer] setCornerRadius:5];
[[_BtnDate layer] setBorderColor:[UIColor lightGrayColor].CGColor];
[_BtnDate setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
[self.view addSubview:_BtnDate];
}
-(void) showDateView{
viewBack2 = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 1024, 768)];
[viewBack2 setBackgroundColor:[UIColor colorWithRed:0 green:0 blue:0 alpha:0.5]];
[self.view addSubview:viewBack2];
dateView = [[UIView alloc] initWithFrame:CGRectMake((viewBack2.frame.size.width-300)/2, (viewBack2.frame.size.height-350)/2, 300, 350)];
[self.view addSubview:dateView];
UIImageView *imageBackground = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"bg-popup"]];
[imageBackground setFrame:CGRectMake(0, 0, 300, 350)];
[dateView addSubview:imageBackground];
[imageBackground release];
UIButton *BtnDate = [UIButton buttonWithType:UIButtonTypeCustom];
[BtnDate setBackgroundImage:[UIImage imageNamed:@"okay.png"] forState:UIControlStateNormal];
[BtnDate addTarget:self action:@selector(btnDateAction:) forControlEvents:UIControlEventTouchUpInside];
[BtnDate setFrame:CGRectMake(80, 300, 140, 36)];
[dateView addSubview:BtnDate];
datePicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(25,25, 250, 250)];
datePicker.datePickerMode = UIDatePickerModeDate;
datePicker.hidden = NO;
datePicker.date = [NSDate date];
[datePicker addTarget:self
action:@selector(changeDateInLabel:)
forControlEvents:UIControlEventValueChanged];
[dateView addSubview:datePicker];
}
- (void)changeDateInLabel:(id)sender{
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"yyyy-MM-dd"];
if (_BtnDate.selected==true) {
[_BtnDate setTitle:[NSString stringWithFormat:@"%@",[df stringFromDate:datePicker.date]] forState:UIControlStateNormal];
}
[df release];
}
-(IBAction)btnDateAction:(id)sender{
if (_BtnDate.selected==true) {
_BtnDate.selected=false;
}
[dateView removeFromSuperview];
[viewBack2 removeFromSuperview];
}
- (void) buttonPressed:(UIButton*)sender {
if (sender == _BtnDate) {
[self showDateView];
_BtnDate.selected=true;
}
}
- (IBAction)btnAddForm:(id)sender {
// I WANT TO CHECK _myText if is not null or > 0 must be clear _BtnDate.titleLabel.text dont do this !
if ([NSNumber numberWithInt:[_myText.text intValue]] > 0 ) {
_BtnDate.titleLabel.text = @"";
}
}
- (void)dealloc {
[_myText release];
[_BtnDate release];
[super dealloc];
}
- (void)viewDidUnload {
[self setmyText:nil];
[self setBtnDate:nil];
[super viewDidUnload];
}
.m文件内部:
@property (nonatomic,retain) IBOutlet UIButton* BtnDate;
- (void)viewDidLoad
{
[super viewDidLoad];
[_BtnDate addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside];
_BtnDate.titleLabel.font = [UIFont systemFontOfSize:17];
[[_BtnDate layer] setBorderWidth:1];
[[_BtnDate layer] setCornerRadius:5];
[[_BtnDate layer] setBorderColor:[UIColor lightGrayColor].CGColor];
[_BtnDate setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
[self.view addSubview:_BtnDate];
}
-(void) showDateView{
viewBack2 = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 1024, 768)];
[viewBack2 setBackgroundColor:[UIColor colorWithRed:0 green:0 blue:0 alpha:0.5]];
[self.view addSubview:viewBack2];
dateView = [[UIView alloc] initWithFrame:CGRectMake((viewBack2.frame.size.width-300)/2, (viewBack2.frame.size.height-350)/2, 300, 350)];
[self.view addSubview:dateView];
UIImageView *imageBackground = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"bg-popup"]];
[imageBackground setFrame:CGRectMake(0, 0, 300, 350)];
[dateView addSubview:imageBackground];
[imageBackground release];
UIButton *BtnDate = [UIButton buttonWithType:UIButtonTypeCustom];
[BtnDate setBackgroundImage:[UIImage imageNamed:@"okay.png"] forState:UIControlStateNormal];
[BtnDate addTarget:self action:@selector(btnDateAction:) forControlEvents:UIControlEventTouchUpInside];
[BtnDate setFrame:CGRectMake(80, 300, 140, 36)];
[dateView addSubview:BtnDate];
datePicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(25,25, 250, 250)];
datePicker.datePickerMode = UIDatePickerModeDate;
datePicker.hidden = NO;
datePicker.date = [NSDate date];
[datePicker addTarget:self
action:@selector(changeDateInLabel:)
forControlEvents:UIControlEventValueChanged];
[dateView addSubview:datePicker];
}
- (void)changeDateInLabel:(id)sender{
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"yyyy-MM-dd"];
if (_BtnDate.selected==true) {
[_BtnDate setTitle:[NSString stringWithFormat:@"%@",[df stringFromDate:datePicker.date]] forState:UIControlStateNormal];
}
[df release];
}
-(IBAction)btnDateAction:(id)sender{
if (_BtnDate.selected==true) {
_BtnDate.selected=false;
}
[dateView removeFromSuperview];
[viewBack2 removeFromSuperview];
}
- (void) buttonPressed:(UIButton*)sender {
if (sender == _BtnDate) {
[self showDateView];
_BtnDate.selected=true;
}
}
- (IBAction)btnAddForm:(id)sender {
// I WANT TO CHECK _myText if is not null or > 0 must be clear _BtnDate.titleLabel.text dont do this !
if ([NSNumber numberWithInt:[_myText.text intValue]] > 0 ) {
_BtnDate.titleLabel.text = @"";
}
}
- (void)dealloc {
[_myText release];
[_BtnDate release];
[super dealloc];
}
- (void)viewDidUnload {
[self setmyText:nil];
[self setBtnDate:nil];
[super viewDidUnload];
}
更新按钮标题时,始终需要指定ControlState!UIButton有四个可能的值:
UIControlStateNormal
UIControlStateHighlighted
UIControlStateDisabled
UIControlStateSelected
所以试试这个
[BtnDate setTitle:@"" forState:UIControlStateNormal];
更新按钮标题时,始终需要指定ControlState!UIButton有四个可能的值:
UIControlStateNormal
UIControlStateHighlighted
UIControlStateDisabled
UIControlStateSelected
所以试试这个
[BtnDate setTitle:@"" forState:UIControlStateNormal];
在showDateView中,使用局部变量BtnDate创建按钮并将其安装到dateView中。因此,BtnDate
属性可能为零
更改创建按钮的代码以使用实例变量
_BtnDate = [UIButton buttonWithType:UIButtonTypeCustom];
[_BtnDate setBackgroundImage:[UIImage imageNamed:@"okay.png"] forState:UIControlStateNormal];
[_BtnDate addTarget:self action:@selector(btnDateAction:) forControlEvents:UIControlEventTouchUpInside];
[_BtnDate setFrame:CGRectMake(80, 300, 140, 36)];
[dateView addSubview:_BtnDate];
顺便说一句,属性和其他变量名应该以小写字母开头,因此BtnDate
应该是BtnDate
在showDateView中,您可以使用局部变量BtnDate创建按钮并将其安装到dateView中。因此,BtnDate
属性可能为零
更改创建按钮的代码以使用实例变量
_BtnDate = [UIButton buttonWithType:UIButtonTypeCustom];
[_BtnDate setBackgroundImage:[UIImage imageNamed:@"okay.png"] forState:UIControlStateNormal];
[_BtnDate addTarget:self action:@selector(btnDateAction:) forControlEvents:UIControlEventTouchUpInside];
[_BtnDate setFrame:CGRectMake(80, 300, 140, 36)];
[dateView addSubview:_BtnDate];
顺便说一下,属性和其他变量名称应该以小写字母开头,因此当您单击btnAddForm
设定这个
[BtnDate setTitle:@"" forState:UIControlStateNormal];
当您单击btnAddForm
设定这个
[BtnDate setTitle:@"" forState:UIControlStateNormal];
@拉贾特我将在哪里添加它?ty@Rajat我将在哪里添加它?泰