2009-02-18 65 views
0

如何防止CTRL + 一個從可編輯的文本字段()文本字段()防止CTRL + A(全選)

+0

你可以在你要完成的任務上增加一點背景嗎?也許TextField不是該作業的正確控件? – StingyJack 2009-02-18 13:19:27

+0

好吧,它的完美ctrl我只想刪除CTRL + A。 – Tom 2009-02-19 10:10:11

+0

聽起來像你想做的事情,你不應該做的。你能解釋一下你想做這件事的原因是什麼? – troelskn 2009-02-19 12:20:47

回答

1

前面的示例僅適用於Flex文本和TextArea對象,它適用於所有flash.text。*對象。

<?xml version="1.0" encoding="utf-8"?> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()"> 
    <mx:Script> 
     <![CDATA[ 
      import mx.core.UIComponent; 

      private var t:TextField; 
      private function init():void 
      { 
       t = new TextField(); 
       t.height = 80; 
       t.width = 100; 
       t.type = TextFieldType.INPUT; 
       t.multiline = true; 
       var c:UIComponent = new UIComponent(); 
       c.addChild(t); 
       foo.addChild(c); 
       addEventListener(KeyboardEvent.KEY_UP,   edit); 
       addEventListener(KeyboardEvent.KEY_DOWN,  edit); 
      } 

      private function edit(event:KeyboardEvent):void 
      { 
       if(event.type == KeyboardEvent.KEY_DOWN && event.ctrlKey) 
       { 
        t.type = TextFieldType.DYNAMIC; // Dynamic texts cannot be edited. You might be able to remove this line. 
        t.selectable = false; // If selectable is false, then Ctrl-a won't do anything. 
       } 
       else 
       { 
        t.type = TextFieldType.INPUT; 
        t.selectable = true; 
       } 
      } 
     ]]> 
    </mx:Script> 
    <mx:Canvas id="foo" height="90" width="110" backgroundColor="#FFFFFF" /> 
</mx:Application> 
0

沒有測試工作,但也許你可以捉對TextFieldselectAll event和防止它冒泡,或清除選擇(不知道事件何時被觸發)。

0

使用與聽衆的KeyboardEvent配對的setFocus功能:

<xml version="1.0"?> 
<!-- menus/SimpleMenuControl.mxml --> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" width="800" initialize="init()" > 
    <mx:TextInput id="nom"/> 
    <mx:Script> 
     <![CDATA[ 
      private function init():void 
      { 
       addEventListener(KeyboardEvent.KEY_UP,  edit); 
       addEventListener(KeyboardEvent.KEY_DOWN, edit); 
      } 

      private function edit(event:KeyboardEvent):void 
      { 
       if(event.type == KeyboardEvent.KEY_DOWN && event.ctrlKey) setFocus(); 
       else nom.setFocus(); 
       nom.selectionEndIndex = nom.selectionBeginIndex = nom.text.length; 
      } 
     ]]> 
    </mx:Script> 

</mx:Application> 

的的setFocus意味着該文本對象將不再聽任何鍵盤事件。

我不會推薦使用啓用的屬性,因爲這會灰色的textarea。

相關問題