【问题标题】:Changing the content of a NSTextField via code when it's focused / gets edited by the user当聚焦/被用户编辑时,通过代码更改 NSTextField 的内容
【发布时间】:2011-09-08 02:02:37
【问题描述】:

我有一个更新 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 方法就可以工作......

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

问候, 亚历克斯

【问题讨论】:

    标签: macos cocoa nstextfield nsslider


    【解决方案1】:

    我不知道这有多大帮助,但我尝试了您的代码,无论当前是否正在编辑 NSTextField 都会更新。对照我的检查您的 NSTextField 属性。也许有什么东西使它无法更新。

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

    【讨论】:

    • 嗯....我找到了错误。我使用了 NumberFormatted NSTextField 并且我传递的字符串有一个错误的十进制符号。使用 setFloatValue 有效,但 setStringValue 无效...啊!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多