2014年12月12日金曜日

SwiftでOSXアプリ開発・ImageKit を使ってみる

写真のサムネイルを並べるために、NSCollectionView を使ってみたが
Xcode の ObjectLibrary (右下のやつ)を眺めてたら
ImageKit Image Browser View というのものがあった。
ちょっとぐぐってみると、スライダーでサムネイル画像の調節までできるとか、できないとか。

使ってみようとしたが

cannot decode object of class (IKImageBrowserView)
user of undeclared type 'IKImageBrowserView'

こんなエラー出る。

どうやら Quartz.framwork を Build Phases の Link Binary With Libraries でインポートしなければならないらしい。
更にoutlet とかしたい場合は、そのクラスの先頭で

import Quartz

を書けばOKだった。

環境
OSX Yosemite
Xcode6.1.1

2014年12月9日火曜日

SwiftでOSXアプリ開発・keyDownメソッドが呼ばれなくてハマったけど解決

NSView で KeyDown メソッドを定義したが
呼ばれない。

acceptsFirstResponder を override して
 true を返す必要があるらしいが
( Swiftのソースでは ) acceptsFirstResponder は入力補完で出てこないし
override するとエラーになるので
困っていたが
結局、下記のように記述すればOKだった。

入力補完されなかいからといって、そのメソッドが存在しないというわけではないらしい。



class View: NSView {

    func acceptsFirstResponder() -> Bool {
       
 return true
    }               

    override func keyDown(theEvent: NSEvent) {      
    }


環境
OSX Yosemite
XCode6.1.1



2014年12月8日月曜日

SwfitでOSXアプリ開発・プログラムからウィンドウを開く


NSWindowControllerのサブクラスを定義。

class ChildWindowController: NSWindowController {

ストーリーボード上にNSWindowControllerを配置して
カスタムクラスに、さっき定義した ChildWindowControllerを設定


開く処理

        var childWindowController:ChildWindowController = self.storyboard?.instantiateControllerWithIdentifier("ChildWindowController") as ChildWindowController

        self.view.window?.addChildWindow( childWindowController.window! , ordered: NSWindowOrderingMode.Above)

環境
OSX Yosemite
Xcode 6.1.1