我试图创建一个DateInputFieldModel(ComposableModel的子类)。
它使用TextInputFieldModel作为inputField
我设置inputField autoAccept: true.
。
我不想使用return / enter接受。
输入时,我用acceptBlock检查输入文本是否可以解释为日期。
就我而言,例如一位数字已经可以解释为日期
当您键入5时,这将意味着当前当月的第5个月。
当输入字段失去焦点(标签或鼠标)时,我想将日期的最终表示呈现到inputField
,并更新我的DateInputFieldModel的日期值。
任何指针如何实现这一目标?
答案 0 :(得分:0)
基础变形发送#keyboardFocusChange:
您可能需要在ComposableModel层次结构中的某处添加#whenFocusChanged:并确保从正确的AbstractMorphicAdapter子类中调用它
答案 1 :(得分:0)
为了回应Stephan Eggermont的建议我改变了 以下方法
MorphicTextInputFieldAdapter>>adapt: aModel
super adapt: aModel.
aModel
whenBuiltDo: [ :w |
w widget color: Smalltalk ui theme backgroundColor.
w widget widget textMorph
onAnnouncement: MorphGotFocus, MorphLostFocus
send: #announce: to: aModel ]
这可行,但是向下钻取w小部件小部件textMorph有点尴尬。
在我的DateInputFieldModel中,我订阅了公告
inputField on: MorphLostFocus send: #lostFocus to: self.