يتم تحديث Datechooser بشكل صحيح فقط إذا كان مرئيًا في البداية

StackOverflow https://stackoverflow.com/questions/2467409

  •  20-09-2019
  •  | 
  •  

سؤال

أنا أكتب تطبيقًا مرنًا وصادفت ما أعتقد أنه مشكلة غريبة.

أرغب في إنشاء مربع نص و datechooser لأن حقل Datefield لم يفعل ما أردت وهو هالة لذلك لا يمكنني الجلد بسهولة. أريد أن يعرض Datechooser عند النقر فوق إدخال النص. هنا ما عدا من الكود الخاص بي:

    <s:TextInput id="wholeDate" width="100"  
                 mouseOver="stopChangeToNormal();"
                 paddingRight="10"
                 click="date1.visible = true"
                 focusOut="date1.visible = false"/>
    <s:Button label="Go" width="70" />
</s:Panel>

<mx:DateChooser id="date1" 
                visible = "false"
                change="useDate(event);" 
                mouseOver="changeToNormalState = false;" 
                y="{wholeDate.y + buttonsGroup.y + 20}"
                x="{wholeDate.x + buttonsGroup.x - 175 }" />    

الشيء الغريب هو أنه يعمل إذا قمت به visible = "true" للبدء ، ولكن إذا كان لدي visible="false" لا يعمل! إنه يظهر ، لكن التاريخ الذي حدده لا يظهر في المربع كما لو كان لدي visible="true", ، لكني لا أريد أن تكون مرئية في البداية.

أيه أفكار؟

هل كانت مفيدة؟

المحلول

لا أعتقد أن أي شيء يتعلق بالفعل بالرؤية الأولية لـ Datechooser. هل قمت بالتحقق من أن معالجات الأحداث الخاصة بك قد تم استدعاؤها بالفعل ، وبدلاً من ذلك أمر منطقي؟ يبدو أن المشكلة هي أنه عندما تحاول إجراء تحديد في Datechooser ، يحصل TextInput على حدث Focusout ، الذي يخفي Datechooser ، والذي يمنعه على ما يبدو من تلقي حدث الاختيار. أعتقد أنك بحاجة إلى أن تكون أكثر انتقائية عندما تخفي Datechooser فعليًا. ربما تحتاج إلى تأجيل الاختباء بحيث يكون لديه فرصة للرد على الاختيار أولاً.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top