1

我对sproutcore很陌生。虽然我知道SC.InlineEditablemixin 和isEditable字段,但问题是当我单击按钮进行labelView可编辑时。标签保持不变,我必须双击标签才能输入文本。

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

我找不到任何像样的文档(sproutcore 没有多大帮助)或教程来做到这一点。指向此类参考的链接也将非常有帮助。

4

2 回答 2

1

根据陈列柜,您应该能够按以下方式完成此操作:

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,以及什么浏览器/版本吗?这可能是一个潜在的错误。

于 2013-03-14T16:37:40.613 回答
0

对我来说,启用标签感觉就像是应用程序中的不同状态。在这种情况下,您最好将按钮的操作与状态图联系起来。因此,您首先创建一个带有 isEditing 属性的控制器,该属性为 false(默认情况下)。

myApp.myController = SC.Controller.create({
  isEditing: false;
});

现在您在当前状态下创建一个函数,该函数由按钮上的操作调用。这将导致进入 EDITING 状态,在 enterState 中将 isEditing 属性设置为 true,在 exitState 中设置为 false。

我不知道如何将标签视图的编辑状态绑定到这个 isEditing 属性,但是假设这是可能的,您可以通过这种方式同时控制所有字段的编辑状态,并且您将确定编辑完成后所有字段也将恢复正常。

于 2013-03-14T20:13:07.667 回答