objective-c - 使用 Objective-C 中的 If 语句根据数值设置 UITextfield 的颜色

标签 objective-c ios if-statement uitextfield uistepper

我目前在连接到 UITextField 的自定义 UITableViewCell 中使用 UIStepper 让人们选择他们想要添加的项目数量他们的购物车。

为了检查对象是否有货,我有两个数字:LocalStock 和 TotalStock。

我想做以下事情:

如果对象数量落入本地库存,我希望显示数字的文本字段变为绿色。

如果对象数量落入供应商库存(因此要么没有本地库存,要么步进器值高于本地库存,因此我们需要从供应商库存中获取)打开 UITextField 蓝色。

如果供应商库存和本地库存都不够,我希望文本字段变为黄色。

我得到了以下代码:

- (IBAction)stepperValueChanged:(id)sender

NSLog(@"localstock: %@",localstock);
NSLog(@"TotalStock: %@",totalstock);

NSDecimalNumber *value = [NSDecimalNumber decimalNumberWithString: self.textField.text];

if (value <= localstock) 
{
self.aantalTextField.backgroundColor = [UIColor greenColor]; 

NSLog(@"Value %@ <= Localstock %@ >GREEN< Totalstock: %@",value,localstock, totalstock);
}

else if (value <= totalstock) 
{
self.aantalTextField.backgroundColor = [UIColor blueColor]; 

NSLog(@"Value %@ <= totalstock %@ >BLUE< Localstock: %@",value,totalstock,localstock);
}

else
{
self.aantalTextField.backgroundColor = [UIColor yellowColor]; 
NSLog(@"Value: %@ LocalStock: %@ TotalStock %@ >YELLOW<",value,localstock,totalstock);}}

当我运行它时它没有多大意义......有时它会捕获绿色语句,有时会捕获蓝色语句,有时相同的值会返回黄色。

有人愿意看一下这个并告诉我(逻辑)错误在哪里吗?

提前致谢!

最佳答案

您是在比较对象,而不是它们的值。只要它们都是 NSDecimalNumber 类型...您需要进行类似的比较。

[value integerValue ] <= [localstock integerValue]

关于objective-c - 使用 Objective-C 中的 If 语句根据数值设置 UITextfield 的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14215251/

相关文章:

objective-c - 无法从 objective-c、Xcode 8 访问 Swift 变量

ios - 更改 MapKit 注释标注标题和副标题的字体

ios - 从设置iOS设置Twitter帐户

ios - 从 json 获取搜索栏中的过滤数据

ios - 找不到成员(member)标志(快速,解析)

if-statement - 基于现有类的 Sass 'if' 语句

c# - 在 C# if 语句中检查多个 boolean 条件的最佳方法

objective-c - 是否可以确定 GHUnit 测试方法的执行顺序?

python - 如何打破多个 while 循环

iphone - UIPickerView中的分秒如何获取如图所示?