如何在ios中使用自定义选择器视图和搜索栏

时间:2013-08-24 12:55:09

标签: iphone ios objective-c

我是iOS初学者在我的一项活动中,我使用搜索栏创建了自定义选择器视图.....实际上我使用YHCPicker类进行自定义选择器视图和搜索栏并在此处将其应用于TextField代码... ..

 UITextField* StateId;

 StateId=[[UITextField alloc]initWithFrame:CGRectMake(150,540,150,30)];
 StateId.font        = [UIFont boldSystemFontOfSize:12.0];
 StateId.borderStyle = UITextBorderStyleLine;

 StateId.delegate = self;
 StateId.tag      = 4;
 [scrollview addSubview:StateId];

我在这个文本字段中使用这个代理....

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
    if (textField.tag==4)
    {
        View_StateID = [[NSMutable Array]allocinitWithArray:@"Delhi", @"Rajasthan"......, nil];
        NSLog(@"dict is %@",View_StateID);

        PickerView* objYHCPickerView = [[PickerView alloc] initWithFrame:CGRectMake(0, 0, 320, 480) ];

        objYHCPickerView.delegate = self;
        [self.view addSubview:objYHCPickerView];
        [objYHCPickerView showPicker:View_StateID];
    }
}

- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
     [textField resignFirstResponder];
     return YES;
} 

然后在YHCPickerView中调用方法ShowPicker,我在我的视图中显示带有搜索栏的选择器.....就像图像一样      enter image description here

现在在这张图片中我们第一次在搜索栏中搜索然后成功获得所需状态并点击完成或搜索按钮(来自键盘)然后在StateID文本字段上获取值,但是当我们再次点击文本字段时我的图像也是如此但是点击搜索栏然后得到这样的错误....

 -[CALayer keyboardWillShowNotification:]: unrecognized selector sent to instance 0xaad8950

所以我不知道是什么问题....所以解决这个问题...

1 个答案:

答案 0 :(得分:0)

这样的错误可能是由于没有正确保留对象造成的:

  1. 释放并释放对象。
  2. 它的内存被重用于一些随机的其他对象。
  3. 然后,当在原始对象上调用选择器时 - >热潮。
  4. 要检查的一件事是,您班级中保留对象的所有@propertiesstrong而不是assign

    还有什么聪明的做法是设置exception breakpoint

    最后,尝试找出这个指针0xaad8950(确实)属于哪个对象:在应用程序崩溃并环顾对象之前,进一步放置断点。解决你的问题。

    祝你好运!