作者dryman (dryman)
看板MacDev
标题[问题] pop up Button, NStext field
时间Sun Dec 21 00:18:55 2008
这算是我第一次接触cocoa,好多问题orz
我这次的问题是在controller上
首先,我有好几个NSTextField,想要要读入的是数字
在interface builder中
我用binding->Value->bind to myController->Model key path _myNumber0
还有NSPopUpButton是用IBAction连的
在xcode中myController.h档
@interface myController : NSObject {
NSNumber *_myNumber0;
NSNumber *_myNumber1;
NSNumber *_myNumber2;
...(有好多个number..)
IBOutlet myCalculate *motion0;
IBOutlet myCalculate *motion1;
IBOutlet myCalculate *motion2;
}
- (IBAction) switchMessage0:(id)sender;
- (IBAction) switchMessage1:(id)sender;
- (IBAction) switchMessage2:(id)sender;
@end
========================================================================
myController.m
@implementation myController
- (id) init{
if(self = [super init]){
[self setMyNumber0 : [[NSNumber alloc] initWithInt:90]];
[self setMyNumber1 : [[NSNumber alloc] initWithInt:180]];
[self setMyNumber2 : [[NSNumber alloc] initWithInt:300]];
...
//setMyNumber是用Place Accessor Defs/Decls做出来的
//这边的初始化有成功,在textField上看得到
}
return self;
}
最有问题的是在连接NSPopUpButton的这几个函式:
- (IBAction) switchMessage0:(id)sender{
[motion0 setDeg0: [_myNumber0 intValue] andDeg1:[_myNumber1 intValue]];
int which = [sender indexOfSelectedItem] + 1;
switch(which){
case 0: [motion0 uniform ];
case 1: [motion0 parabolic ];
case 2: [motion0 harmonic ];
case 3: [motion0 cycloidal ];
}
}
- (IBAction) switchMessage1:(id)sender{
[motion0 setDeg0: [_myNumber1 intValue] andDeg1:[_myNumber2 intValue]];
int which = [sender indexOfSelectedItem] + 1;
switch(which){
case 0: [motion1 uniform ];
case 1: [motion1 parabolic ];
case 2: [motion1 harmonic ];
case 3: [motion1 cycloidal ];
}
}
...
@end
switchMessage0有成功的进行运算
但之後的那几个(switchMessage1,2,3...)都没有进行运算
似乎在运算switchMessage0时它就跳不出去了
因为我修改_Number0之类的值它不会再重新计算
pop up button我第一次选了之後要再重新选它也不会重新算
最奇怪的是:我第一个勾选的不是switchMessage0的button的话它什麽都不会计算...
究竟是哪边出了问题啊?
另一个我想问的是,
pop up button能不能在初始的时候就让它进行计算啊
好比说switchMessage0一开始就呼叫[motion0 cycloidal]
switchMessage1一开始就呼叫[motion0 harmonic]
...
有请大家帮忙,谢谢!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.228.96.223
※ 编辑: dryman 来自: 61.228.96.223 (12/21 00:19)