单击按钮即可编辑标签视图 - Sproutcore

时间:2013-03-14 15:59:32

标签: javascript javascript-framework sproutcore textfield sproutcore-views

我对sproutcore很新。虽然我知道SC.InlineEditable mixin和isEditable字段,但问题是当我点击按钮以使labelView可编辑时。标签保持不变,我必须双击标签才能输入文字。

我想要的是当我点击编辑按钮时,标签应该变成文本字段并且应该成为第一个响应者,即光标应该在文本上闪烁。

我找不到任何体面的文档(sproutcore没有多大帮助)或教程来做到这一点。这些参考文献的链接也非常有用。

2 个答案:

答案 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属性,但假设这是可能的,您可以通过这种方式同时控制所有字段的编辑状态,并且您将确保在编辑完成后所有字段也将恢复正常。