Swift

Swift:単純な違いでも結果は大違い。

「applicationDidFinishLaunchingに制御が渡らない」というアプリの制御の話です。

すでに公開しているNSOpenPanel / NSToolbarのサンプルプログラムとほぼ等価のコードをアプリで書いています。しかし、サンプルプログラムと違う動きをしていました。どこが違うかというと、アプリでは、awakeFromNibのあとwindowが開いてしまい、applicationDidFinishLaunchingに制御が渡らないのです。

Screenshot 2015-12-21 18.32.17

アプリ自体は正常に動作します。問題は、アプリwindowを閉じたあと、Dockのアイコンをクリックしてもアプリが再起動しない。この問題は、サンプルアプリを作った時点で認識していたのですが、調査が終わっていませんでした。

先程、きっちり調べたら、.xibの接続に問題があることがわかりました。

  • 上図:File’s Owner – AppDelegateを接続する。
  • 下図:XbWindowでXbWindow – AppDelegateを接続する。
  • 下図:XbWindowでdelegate – ToolBarを接続する。

Screenshot 2015-12-21 18.41.44

Screenshot 2015-12-21 18.42.14

Categories: Swift, 技術