[UIRoundedRectButton setText:]:无法识别的选择器发送到实例?

时间:2013-04-24 10:55:05

标签: ios objective-c uitextfield uilabel

由于未捕获的异常,我的程序一直在终止。键盘工作正常,直到在键盘上输入字符。

我有一个按钮,用于调出键盘和连接到文本字段的插座,我也是文本字段代表。

[已删除代码]

提前感谢您的帮助:)

3 个答案:

答案 0 :(得分:2)

这一行lbl.text=TempTF.text;在你的情况下并不好。您的lbl可以是任何类型的UIView,因为您只是从子视图中对其进行类型转换。所以在你的情况下,其中一个是一种UIRoundedRectButton,它没有文本的setter。

您需要放置一些if([lbl isKindOfClass:])或进行检查if([lbl respondsToSelector:@selector(setText:)])

答案 1 :(得分:0)

-(void)changeLabelsMethod:(UITextField*)txtField
{
    NSArray *allLabelViews = self.view.subviews;
    for(id subView in allLabelViews) {

        if([allLabelViews isKindOfClass:[LettersOnTileView class]])
        {
            for (int i = 0; allLabelViews.count>0; i++) {
                LettersOnTileView.tag = i;
            if([[allLabelViews objectAtIndex:i] isKindOfClass:[UILabel Class]]){

            UILabel *lbl=[allLabelViews objectAtIndex:i];
            lbl.text=TempTF.text;
            }

        }

    }

}

答案 2 :(得分:0)

您的代码中存在问题。

而不是这段代码。

for(id subView in allLabelViews) {

        if([allLabelViews isKindOfClass:[LettersOnTileView class]])
        {

你必须试试这个。

for(id subView in allLabelViews) {

        if([subView isKindOfClass:[LettersOnTileView class]])//Here you want to check all subview . 
        {

2)我认为你在这一行UILabel *lbl=[allLabelViews objectAtIndex:i];中有了按钮对象。那就是它在下一行记录下来了。