在用户聚焦/编辑NSTextField时,通过代码更改NSTextField的内容

时间:2011-09-07 13:00:13

标签: macos cocoa nstextfield nsslider

我有一个更新NSTextField内容的NSSlider。到现在为止还挺好。只要NSTextField没有被聚焦或被用户编辑(输入或保持空白等),它就可以工作。

我正在努力工作的是通过代码强制更新NSTextField,无论用户在做什么。

这是滑块更改值事件的代码:

-(IBAction) sliderTempoMoved: (id)sender{
[soundEngine setTempo:[sender floatValue]];

[labelTempo setStringValue:[NSString stringWithFormat:@"%0.2f%",[sender floatValue]]];
 NSLog(@"slideTempoMoved: %f",[sender floatValue]);
}

只要NSTextField没有被编辑,setStringValue方法就可以工作......

关于这个问题的任何线索??

此致  亚历

1 个答案:

答案 0 :(得分:1)

我不知道这有多少帮助,但我尝试了你的代码,无论NSTextField当前是否正在编辑,它都会得到更新。检查您的NSTextField属性。也许有些东西会让它不被更新。

您也可以在致电[labelTempo abortEditing]之前尝试拨打setStringValue

NSTextField Properties