2010-03-10 10 views
6

मैं NSPredicateEditor बना रहा हूं, और मैं उन्नत दिनांक तुलना करने की क्षमता चाहता हूं।दिनांक तुलना के लिए NSPredicateEditorRowTemplate

मुझे लगता है कि मैं NSDateAttributeType के rightExpressionType के साथ एक NSPredicateEditorRowTemplate निर्माण कर सकते हैं, लेकिन विधेय मैं जरूरत के निर्माण के लिए इससे बहुत बड़ा उन्नत होना चाहता हूँ।

  • dateKeypath < aDate
  • dateKeypath <= aDate
  • dateKeypath = aDate
  • dateKeypath != aDate
  • dateKeypath > aDate
  • dateKeypath >= aDate
  • :

    उदाहरण के लिए, मैं जैसे बुनियादी तुलना करने की जरूरत है

ये बुनियादी तुलना हासिल करने में काफी आसान हैं, और मेरे पास ये काम है। हालांकि, मैं भी तरह की तुलना करने की जरूरत है:

  • dateKeypath isInTheLast n days (या सप्ताह, महीने, साल)
  • dateKeypath isNotInTheLast n days (या सप्ताह, महीने, साल)
  • dateKeypath between aDate and anotherDate

कैसे कर सकते हैं मैं तुलना के इन प्रकारों को प्राप्त करें? मैं समझता हूं कि मुझे एक कस्टम NSPredicateEditorRowTemplate बनाना होगा, लेकिन मुझे इस तरह कुछ हासिल करने के तरीके पर कोई स्पष्ट दस्तावेज नहीं मिला है।

संपादित बोनस अंक भी कैसे इन तुलना एक पूर्ण तिथि-समय (वर्ष महीने दिन घंटे मिनट-सेकंड) तुलना बनाने के लिए (NSDateAttributeType के रूप में केवल एक साल माह दिन के विवरण का स्तर है जानने के लिए उपलब्ध हैं)।

उत्तर

8

पीछे मुड़कर देखें तो इस सवाल का जवाब कुछ हद तक स्पष्ट लगता:

मैं वास्तव में विधेय संपादक पंक्ति टेम्पलेट्स, नहीं एक का वर्णन किया। तीन टेम्प्लेट उपलब्ध हैं:

  • dateKeyPath [<, <=, =, >, >=, !=] [NSDatePicker]
  • dateKeyPath [inTheLast, notInTheLast] [NSTextField] [NSPopUpButton]
  • dateKeyPath [between] [NSDatePicker] "and" [NSDatePicker]

आप इन तीनों विधेय संपादक पंक्ति टेम्पलेट्स का निर्माण और उन्हें predicateEditor को देते हैं, संपादक एहसास होगा कि वे कर रहे हैं कि सभी एक ही dateKeyPath का उपयोग करते हुए, और उसके बाद अपने सभी ऑपरेटरों को एक पॉपअप बटन में क्रंच करें। इसके बाद ऑपरेटर के दाईं ओर वास्तविक दृश्यों को स्विच किया जाएगा, जिसके आधार पर ऑपरेटर का चयन किया जाता है।

संपादित

बोनस अंक के लिए: आप templateViews विधि अधिभावी, super से templateViews पुन: प्राप्त करने, और उचित वालों पर datePickerElements की स्थापना करके तिथि पिकर की परिशुद्धता संशोधित कर सकते हैं।

संपादन 24 नवंबर 2010

किसी के लिए, जो इस भर में फिर से आता है, मैं कस्टम NSPredicateEditorRowTemplates बनाने पर एक जोड़े ब्लॉग पोस्ट में लिखा है:

0

मुझे नहीं लगता कि दूसरा अनुमानित टेम्पलेट अपेक्षा के अनुसार काम करेगा। समस्या यह है कि आपको एक सापेक्ष तारीख की आवश्यकता है - एक तिथि जो वर्तमान तिथि के सापेक्ष मूल्यांकन की जाती है।

मैंने ऐप्पल इंजीनियर से कुछ कोड (और सलाह) के आधार पर इस तरह के एक अनुमानित संपादक टेम्पलेट (सभी संबंधित कोड के साथ) लागू किया है। यदि कोई दिलचस्पी लेता है तो मैं विवरण प्रदान कर सकता हूं, आदि। मेरा कार्यान्वयन काफी शामिल है।

+0

हाँ, मैंने अंत में भी काम किया। मेरे साथ आने वाले ईमेल के साथ मुझे एक ईमेल शूट करें! मुझे आपके साथ नोट्स साझा करना अच्छा लगेगा। –

+0

निश्चित रूप से। मैं एक स्टैक ओवरफ्लो नौसिखिया हूँ। मैं आपको कैसे ईमेल करूं? – mts

+0

मेरी प्रोफ़ाइल के मेरे होमपेज पर एक लिंक है, जिसमें एक ईमेल फॉर्म है। –

संबंधित मुद्दे