34198


画像のように設定したのですが、年/月/日/時/分になっており、年が表示されてしまいます。  
これを年を無くし[月/日/時/分]表示にするにはどうしたら良いのでしょうか？  
Elementsでは対処することができずわかりません、よろしくお願いいたします。  
[![画像の説明をここに入力](https://i.stack.imgur.com/Cyl1E.png)](https://i.stack.imgur.com/Cyl1E.png)


CC BY-SA 3.0
2017-04-21T14:52:31.383
34194
2017-07-21T18:05:34.907
2017-07-21T18:05:34.907
754
17048
question
xcode macos swift3 xcode8
macOSアプリでのNSDatePickerの表示を[月/日/時/分]形式にしたい


iOSではなく、macOSのNSDatePickerですよね？

Appleの公式ドキュメントを見る限り、  
<https://developer.apple.com/reference/appkit/nsdatepickerelementflags>  
「年」抜きの「月/日」は用意されていないようです。  
おそらく、2/29が問題になるためかと思われます

ですので、

> これを年を無くし[月/日/時/分]表示にするにはどうしたら良いのでしょうか？

については「月/日」は自前で実装してやる必要があります。


CC BY-SA 3.0
2017-04-21T22:54:38.653
34197
2017-04-21T22:54:38.653
15705
34194
answer


Storyboardエディターで表示されるElementsの項目は、`NSDatePicker`のこちらのプロパティに対応するようです。

> #
> [datePickerElements](https://developer.apple.com/reference/appkit/nsdatepicker/1533480-datepickerelements)
>
> A bitmask that indicates which visual elements of the date picker are  
>  currently shown, and which won't be usable because they are hidden.
>
> ## Discussion
>
> See “Constants” in
> [NSDatePickerCell](https://developer.apple.com/reference/appkit/nsdatepickercell)
> for a description of the possible values.

リンク先を辿ると、使用可能な定数の一覧が出てきます。

> #
> [NSDatePickerElementFlags](https://developer.apple.com/reference/appkit/nsdatepickerelementflags)
>
> ### Constants
[code]

>     static var hourMinuteDatePickerElementFlag: NSDatePickerElementFlags
>  
[/code]

>
> Display and allow editing of the hour and minute elements of the date.
[code]

>     static var hourMinuteSecondDatePickerElementFlag:
> NSDatePickerElementFlags
>  
[/code]

>
> Display and allow editing of the hour, minute and second elements of  
>  the date.
[code]

>     static var timeZoneDatePickerElementFlag: NSDatePickerElementFlags
>  
[/code]

>
> Display and allow editing of the time zone.
[code]

>     static var yearMonthDatePickerElementFlag: NSDatePickerElementFlags
>  
[/code]

>
> Display and allow editing of the year and month elements of the date.
[code]

>     static var yearMonthDayDatePickerElementFlag: NSDatePickerElementFlags
>  
[/code]

>
> Display and allow editing of the year, month and day elements of the  
>  date.
[code]

>     static var eraDatePickerElementFlag: NSDatePickerElementFlags
>  
[/code]

>
> Display and allow editing of the era of the date, if applicable.

定義されているのは、上記6つの定数だけです。MonthとDayだけを定義した定数がないのは、英語の説明部分を読まなくてもすぐにお分かりだと思います。

最初のプロパティの説明にあるように、こちらの値は bitmask
なので、月と日に対応すると思われるビットだけを設定してみたのですが、そのような不正な値を指定すると **日付部分自体が全く表示されなくなってしまいました**
。

私の試し方・探し方が悪かっただけという可能性もありますが、
**`NSDatePicker`は、年を省いた「月/日」の形式で日付部分を表示・編集することはできないようにデザインされている**
と考えた方が良いように思います。

どうしても「月/日」の表示にしたければ、`NSDatePicker`を使わず、他のコントロールを組み合わせたり、カスタムコントロールを自作する必要があるでしょう。


CC BY-SA 3.0
2017-04-21T23:08:05.997
34198
2017-04-21T23:08:05.997
2020-06-17T08:14:45.997
-1
13972
34194
answer