きりかノート 3冊め

おあそびプログラミング

10.5のNSOpenPanelのsetAllowedFileTypes:が効かない

2chCocoaはさっぱりスレより。規制で書き込めないのでこっちに。だれかコピペしといてくれるとうれしいです。

使う側からすると納得いかないですがAppleとしては仕様てことみたいですね。

You'll notice that the NSOpenPanel version has no way to show the enabled "fileTypes". Applications that link on SnowLeopard can now use allowedFileTypes/setAllowedFileTypes:, which was previously not used for the NSOpenPanel. Please refer to the header comments for more information.

10.6のNSSavePanel.hにも

NSOpenPanel: On versions less than 10.6, this property is ignored.

とあります。

NSOpenPanelのプロパティallowedFileTypesはSnow Leopardで導入されたもので、それより前のバージョンでは使えない、ということです。

検索して見つけたネタ元はこちら。

単一のバイナリで使いたいときはrespondsToSelector:だとダメ(親クラスのNSSavePanelで定義されてて機能はしないけど呼び出しは可能)なので、OSかAppKitのバージョンとかで判定して場合分けした実装が必要になるのか。わずらわしいな。