0

我正在制作一个有四个 NSTextField 框的小程序。每个框都通过一个公式与其他框相关联。基本上,我现在就可以使用它,在您单击开箱后,它会很好地计算其他框(您可以在任何框中输入数字)。

我想要的是每次按键后,我想调用盒子动作来计算其他盒子。因此,结果应该立即发生,而不仅仅是在点击开箱或点击标签等之后。

我仍在学习 ObjC,因此,虽然我尝试查看文档,但它们似乎并不直接适用于我的问题。

我定义了以下操作:

- (IBAction)boxX1:(id)sender;
- (IBAction)boxY1:(id)sender;
- (IBAction)boxX2:(id)sender;
- (IBAction)boxY2:(id)sender;

对于每一个,都有一些代码以正确的方式调用计算函数......

所以,基本问题是......计算?

例如,这是 boxX2 的代码:

- (IBAction)boxY2:(id)sender {
    self.boxX2.stringValue = [ARCBrain calculateRatio:self.boxX1.stringValue times:self.boxY2.stringValue dividedBy:self.boxY1.stringValue];
}

我只需要在每次按键后都能调用它。看起来很容易,不是吗?

谢谢

4

2 回答 2

2

这就是我最终做的事情:

我添加了这个:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textDidChange:) name:NSControlTextDidChangeNotification object:nil];

到 -applicationDidFinishLaunching: 方法,然后添加:

-(void) textDidChange:(NSNotification *)obj {
   if ([obj object] == self.boxX1) {
      //do stuff
   } else ... {
   // Do other stuff
   }
   ...
}

上课..像魅力一样工作!

于 2012-04-20T02:26:43.433 回答
-1

检查您是否可以使用此方法:

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string; 
于 2012-04-19T19:31:49.830 回答