我怎样才能使一个NSTextField焦点重绘本身?
为了正确显示SMPTE时间码值( HH:MM:SS:FF
),我已经分类并定义了自己的自定义NSFormatter和NSTextField类。 当用户选择使用drop-frame作为fps值时,格式将变为HH:MM:SS;FF
(最后的分号)。 除了最后一个障碍之外,我的这一切都运行良好。
在更改格式时,具有焦点的NSTextField不会更新其显示,直到焦点丢失。 这里是一个截图来说明:
我已经尝试在格式更改时向NSTextField发送setNeedsDisplay
消息,并且向它发送display
消息。 目前为止似乎没有任何工作,并且具有焦点的文本字段拒绝更新/重绘本身,直到失去焦点。
我需要做什么来实现这一点的任何建议?
我现在设法解决了这个问题。 这可能有些破绽,但基本上我最终做的是用currentEditor
检索NSTextField
的字段编辑器,并将其作为一个对象发送,并发送格式更改时发布的通知。
随着字段编辑器,我只是把它replaceCharactersInRange:withString:
将最后一个“:”更改为“;” 反之亦然。 虽然它可能不是最优的,但它完美地工作。
事实上,我已经将解决方案发布到github上,以供任何其他可能发现此功能的人使用。 https://github.com/cfloisand/smpteformatter
链接地址: http://www.djcxy.com/p/85245.html上一篇: How can I make an NSTextField that has focus redraw itself?