我对sproutcore很新。虽然我知道SC.InlineEditable
mixin和isEditable
字段,但问题是当我点击按钮以使labelView
可编辑时。标签保持不变,我必须双击标签才能输入文字。
我想要的是当我点击编辑按钮时,标签应该变成文本字段并且应该成为第一个响应者,即光标应该在文本上闪烁。
我找不到任何体面的文档(sproutcore没有多大帮助)或教程来做到这一点。这些参考文献的链接也非常有用。
答案 0 :(得分:1)
根据showcase,您应该能够按如下方式完成此任务:
SC.LabelView.extend({
classNames: ['my-label-view'],
isEditable: true,
layout: { width: 300, height: 16, centerX: 0, centerY: 0 },
value: 'Double-click this label to edit inline.'
})
如果这不起作用,您能否告诉我们您使用的是什么版本的SC,以及哪些浏览器/版本?这可能是一个潜在的错误。
答案 1 :(得分:0)
对我来说,感觉在应用程序中启用标签是一种不同的状态。在这种情况下,您最好将按钮的操作绑定到状态图。 因此,首先创建一个带有isEditing属性的控制器,该属性为false(默认情况下)。
myApp.myController = SC.Controller.create({
isEditing: false;
});
现在,您可以在当前状态下创建一个函数,该函数由按钮上的操作调用。这将导致进入EDITING状态,该状态在enterState中将isEditing属性设置为true,在exitState中将其设置为false。
我不清楚如何将标签视图的编辑状态绑定到此isEditing属性,但假设这是可能的,您可以通过这种方式同时控制所有字段的编辑状态,并且您将确保在编辑完成后所有字段也将恢复正常。