我對sproutcore很新穎。雖然我知道SC.InlineEditable
mixin和isEditable
字段,但問題在於當我點擊該按鈕來編輯labelView
時。標籤保持不變,我必須雙擊標籤才能輸入文字。點擊按鈕製作標籤視圖 - Sproutcore
我想要的是,當我點擊編輯按鈕時,標籤應該變成文本字段,並且應該成爲第一響應者,即光標應該閃爍在textfied上。
我找不到任何像樣的文檔(sproutcore沒有多大幫助)或教程來做到這一點。鏈接到這樣的參考也是非常有用的。
我對sproutcore很新穎。雖然我知道SC.InlineEditable
mixin和isEditable
字段,但問題在於當我點擊該按鈕來編輯labelView
時。標籤保持不變,我必須雙擊標籤才能輸入文字。點擊按鈕製作標籤視圖 - Sproutcore
我想要的是,當我點擊編輯按鈕時,標籤應該變成文本字段,並且應該成爲第一響應者,即光標應該閃爍在textfied上。
我找不到任何像樣的文檔(sproutcore沒有多大幫助)或教程來做到這一點。鏈接到這樣的參考也是非常有用的。
按照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的,什麼瀏覽器/版本?這可能是一個潛在的錯誤。
對我來說,感覺就像在應用程序中啓用標籤是一種不同的狀態。在這種情況下,您最好將按鈕的動作綁定到狀態圖。 因此,您首先使用isEditing屬性創建一個控制器,該屬性爲false(默認情況下)。
myApp.myController = SC.Controller.create({
isEditing: false;
});
現在您在當前狀態下創建一個函數,該函數由按鈕上的操作調用。這將導致進入EDITING狀態,該狀態在enterState中將isEditing屬性設置爲true,並在exitState中將其設置爲false。
我不知道如何將標籤視圖的編輯狀態綁定到isEditing屬性,但假設這是可能的,您可以通過這種方式同時控制所有字段的編輯狀態,並且您將確定所有字段在編輯完成後也會恢復正常。
現在正在發生這種情況。我想單擊一個按鈕而不是點擊標籤來使該字段可編輯。其實頁面上有多個標籤。我想通過點擊一個編輯按鈕來立即編輯它們。 – Rakesh 2013-03-14 17:01:19
好吧,您可以輕鬆點擊一個按鈕並在標籤上調用beginEditing(),但只有其中一個可以設置firstResponder。請查看此鏈接底部的代碼,以獲得一個使用1個標籤視圖執行此操作的粗略示例:https://github.com/sproutcore/showcase/blob/master/views/label_views.js – 2013-03-14 17:10:42
謝謝。我會從那開始。將所有標籤變爲文本字段的指針? – Rakesh 2013-03-14 17:23:04