在iPhone应用程序中隐藏自定义数字键盘上的按钮

时间:2013-12-18 19:28:41

标签: objective-c uibutton xib nib

我有一个从笔尖创建的自定义键盘。在首选项视图中,用户可以输入流流警告的数字。数字可以基于每秒的立方英尺,这总是一个正整数值。数字也可以基于流量计高度,可以是正浮子或负浮子。

所以,我有一个自定义数字键盘,它有一个正负(+/-)按钮和一个小数点。当选择仅需要正整数的文本字段时,我需要禁用和隐藏这些按钮。

我已在视图控制器上声明了这些按钮的属性,这些按钮启动了自定义数字键盘,但调用setHidden或setEnabled对运行时按钮的状态没有影响。当提供这些设置器的NO值为启用时,YES为隐藏提供时,按钮仍然可见并启用。按钮由自定义图像表示,但我觉得我应该能够在代码中隐藏它们。我错过了什么吗?

在下面的代码示例中,我正在调用一个方法来设置文本字段的一些启用属性,这些属性都按计划运行。在设置属于单独nib的控件的属性时,我是否缺少一些东西?

-(void)prefsNotificationChanged{
    NSInteger selection = segNotificationPreference.selectedSegmentIndex;
    switch (selection) {
        case 0:{ // CFS
            [self setInputPrefsFor:txtMinCFS and:txtMaxCFS withLabels:lblMinCFS and:lblMaxCFS forEnabledState:YES];
            [self setInputPrefsFor:txtMinFeet and:txtMaxFeet withLabels:lblMinHeight and:lblMaxHeight forEnabledState:NO];
            [self.btnNumPosNeg setEnabled:NO];
            [self.btnNumPosNeg setHidden:YES];
            break;
        }
        case 1:{ // Gauge Height
            [self setInputPrefsFor:txtMinFeet and:txtMaxFeet withLabels:lblMinHeight and:lblMaxHeight forEnabledState:YES];
            [self setInputPrefsFor:txtMinCFS and:txtMaxCFS withLabels:lblMinCFS and:lblMaxCFS forEnabledState:NO];
            [self.btnNumPosNeg setEnabled:YES];
            [self.btnNumPosNeg setHidden:NO];
            break;
        }
        case -1:{ // None
            [self setInputPrefsFor:txtMinCFS and:txtMaxCFS withLabels:lblMinCFS and:lblMaxCFS forEnabledState:NO];
            [self setInputPrefsFor:txtMinFeet and:txtMaxFeet withLabels:lblMinHeight and:lblMaxHeight forEnabledState:NO];
            break;
        }
        default: break;
    }
}

属性声明(我还没有尝试为btnNumDot实现状态):

@property (nonatomic,strong) IBOutlet UIButton *btnNumDot;
@property (nonatomic,strong) IBOutlet UIButton *btnNumPosNeg;

.m文件:

@synthesize btnNumDot, btnNumPosNeg;

谢谢!

0 个答案:

没有答案