Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 使NSTextField像一个;微波定时器“;,存储为NSNumber_Objective C_Cocoa_Macos - Fatal编程技术网

Objective c 使NSTextField像一个;微波定时器“;,存储为NSNumber

Objective c 使NSTextField像一个;微波定时器“;,存储为NSNumber,objective-c,cocoa,macos,Objective C,Cocoa,Macos,我努力实现的目标有两个方面: 我希望我的NSTextField像一个“微波计时器”一样工作,并在输入字符时更新。因此,该字段将默认为“00:00”(分,秒)。当按下1时,字段看起来像“00:01”。然后按下4键并选择“00:14”。按下2键并选择“01:42” 我想将其作为NSNumber存储在控制器上,作为计时器中的秒数。因此,如果文本字段显示“10:00”,则属性上的值将为600 似乎NSFormatter是一个好地方,但我的尝试都失败了。欢迎任何帮助。谢谢 a)将计时器属性的值分为分钟和秒

我努力实现的目标有两个方面:

  • 我希望我的NSTextField像一个“微波计时器”一样工作,并在输入字符时更新。因此,该字段将默认为“00:00”(分,秒)。当按下1时,字段看起来像“00:01”。然后按下4键并选择“00:14”。按下2键并选择“01:42”
  • 我想将其作为NSNumber存储在控制器上,作为计时器中的秒数。因此,如果文本字段显示“10:00”,则属性上的值将为600
  • 似乎NSFormatter是一个好地方,但我的尝试都失败了。欢迎任何帮助。谢谢

    a)将计时器属性的值分为分钟和秒。然后使用带有两个前导零的设置,从这两个数字创建字符串(请参见:)。然后使用将两个字符串放在冒号的任一侧

    b) 或者只需将四个数字中的每一个数字(在您的示例中)分开,并将该数字放入一个字符串中,冒号位于正确的位置。(先是十分钟,然后是分钟,然后是十秒,然后是秒)


    上述任何一项都可以位于NSTextField上的集合中,也可以位于由观察者调用的视图控制器中的方法中(使用)您的计时器属性。

    也许您应该发布您无法工作的内容,以便人们可以帮助您前进或引导您走向不同的方向。您在逻辑或事件处理方面有问题吗,或者两者都有问题吗?还是其他问题?我同意Andrew的观点,发布您的努力会有所帮助。另外-当用户单击退出,然后30秒后重新激活文本字段时,您希望发生什么?好的,我有一个NSFormatter子类,它可以成功地将秒转换为计时器(“00:00”),将计时器转换为秒。我的问题在于将其连接到一个文本字段,该文本字段将使用计时器格式正确更新文本字段,并使用KVO将计时器作为NSNumber存储在控制器中。