2010-03-10 9 views
6

Bir NSPredicateEditor yapıyorum ve gelişmiş tarih karşılaştırması yapabilme yeteneğini istiyorum.NSPredicateEditorRowTamplate için tarih karşılaştırması

Bir ile yapılandırabileceğinin farkındayım, ancak oluşturmak istediğim bu yüklemelerden çok daha gelişmiş olması gerekiyor.

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

    Örneğin, ben gibi temel karşılaştırma gerek

Bu temel karşılaştırmaların yapılması oldukça kolaydır ve bu çalışmalara sahibim. Ben

  • dateKeypath isInTheLast n days (veya hafta, ay, yıl)
  • dateKeypath isNotInTheLast n days (veya hafta, ay, yıl)

Nasıl

  • dateKeypath between aDate and anotherDate
  • edebilirsiniz: Ancak, ben de böyle karşılaştırmalar yapmak gerekir bu tür karşılaştırmalara ulaşmak? Özel bir NSPredicateEditorRowTemplate oluşturmam gerektiğini anlıyorum, ancak böyle bir şeye nasıl ulaşacağına dair net bir belge bulamadım.

    DÜZENLEME Bonus noktaları da sadece yıl-ay-gün boyutu bulunur NSDateAttributeType olarak (bu karşılaştırmalar tam tarih-zaman (yıl-ay-gün-saat-dakika-saniye) karşılaştırma yapmak için bilerek mevcuttur). Geriye doğru bakıldığında

    cevap

    8

    , bu cevap biraz açık görünüyor:

    Aslında yüklem editörü satır şablonları, bir değil tanımladı. Üç şablonları şunlardır:

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

    Bu üç yüklem editörü satır şablonları oluşturmak ve predicateEditor verdiğim takdirde, editör onlar olduğunuzu anlayacaktır hepsi aynı dateKeyPath'u kullanarak ekrana gelir ve ardından tüm operatörlerini tek bir popup düğmesine sıkıştırır. Daha sonra, hangi operatörün seçildiğine bağlı olarak, gerçek görünümleri operatörün sağında değiştirecektir.Bonus puan için

    Düzenleme

    : Eğer templateViews yöntemi geçersiz kılmasını super gelen templateViews alınırken ve uygun seçiciler üzerinde datePickerElements ayarlayarak tarih seçicilerin hassasiyetini değiştirebilir.

    Düzenleme yine bu rastlar 24 Kasım herkes için 2010

    , ben özel NSPredicateEditorRowTemplates oluşturma hakkında bir kaç blog postaları yazdık:

    ) inTheLast ve inTheNext satır şablonu nasıl 0
    0

    Ben beklendiği gibi ikinci yüklem şablon çalışacağını sanmıyorum. Sorun şu ki, göreceli bir tarihe ihtiyacınız var - geçerli tarihe göre değerlendirilen bir tarih. Apple mühendisi bazı kod (ve tavsiye) dayalı

    I (tüm ilişkili koduyla) böyle bir yüklem editörü şablonu uyguladık. İlgilenen biri varsa, ayrıntıları verebilirim. Uygulamam oldukça ilgili.

    +0

    Evet, sonunda da böyle çalıştı. Ne ile geldiğini bana e-postayla vur! Notları seninle paylaşmak isterim. –

    +0

    Elbette. Ben bir StackOverflow acemiyim. Size nasıl e-posta gönderirim? – mts

    +0

    Profilimi email forma sahiptir ana sayfam, bir bağlantı vardır. –