質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Xcode 7

Xcode 7は、ソフトウェア開発のためのアップルの統合開発環境であるXcodeのバージョン。UIを作成するために用いるグラフィカルツールです。iOS9/OS X El Capitan/watchOS2に対応。Swift 2コンパイラーが搭載されています。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Swift 2

Swift 2は、Apple社が独自に開発を行っている言語「Swift」のアップグレード版です。iOSやOS X、さらにLinuxにも対応可能です。また、throws-catchベースのエラーハンドリングが追加されています。

Q&A

解決済

1回答

1579閲覧

OSXアプリで別フォームからのイベント処理追加方法について

misakiti

総合スコア15

Xcode 7

Xcode 7は、ソフトウェア開発のためのアップルの統合開発環境であるXcodeのバージョン。UIを作成するために用いるグラフィカルツールです。iOS9/OS X El Capitan/watchOS2に対応。Swift 2コンパイラーが搭載されています。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Swift 2

Swift 2は、Apple社が独自に開発を行っている言語「Swift」のアップグレード版です。iOSやOS X、さらにLinuxにも対応可能です。また、throws-catchベースのエラーハンドリングが追加されています。

0グッド

0クリップ

投稿2016/06/29 13:56

編集2016/06/30 00:34

Mac OSXのswiftで別フォームからのイベント処理の追加方法が分からなかったため質問させてください。

今、以下の画面のような構成のプログラムを作成したいと考えています。

[画像1]
イメージ説明

XcodeにてView Controllerを新たに1つ追加し、アプリケーションメニューの「formtest」を選択すると、追加したView Controllerの画面が起動するというものです。追加したView Controllerには「Button2」というボタンを1つ追加しています。

[画像1]の左下のView Controller(「Button1」が追加されているもの)は
Xcodeで新規プロジェクト起動時にデフォルトで設定された画面になります。
この[Button1]を押した時のイベント処理を設定する方法は[Button1]を右クリックして以下の[画像2]のように設定することで追加できると思います。

[画像2]
イメージ説明

ただ、新たに画面を追加したView Controller(「Button2」を追加した方の画面)で同様の事をしても「Button2」をクリックした時のイベント処理を追加することができません。
(上記[画像2]のようにボタンを押した時の処理を追加できません。)

「Button2」をクリックした時のイベント処理を追加するにはどのように行ったら宜しいのでしょうか?
どうかご教授をお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

私も忘れかけてたので作って試してみました。

えと、View Controllerを追加したら対応するSwiftソースを作らないとダメだと思います。

まず、新規ファイルでSwiftのファイルを作って、
NSViewControllerを継承してください。
(例えば、ViewController2 とします)

で、ストーリーボードで、新しく作ったView Controller画面を選択した状態で
画面右側の Show the Identity Inspector を開きます。

その中の Custom Class の Classのプルダウンで、新たに作った
ViewController2が選べるはずなので、選びます。
その後は、同じようにそちらのソースに対してボタンをイベントを追加すれば動くはずです。

Swift

1import Cocoa 2 3class ViewController2: NSViewController { 4 5 @IBAction func buttonClick(sender: AnyObject) { 6 NSLog("ViewController 2"); 7 } 8 9 override func viewDidLoad() { 10 super.viewDidLoad() 11 12 // Do any additional setup after loading the view. 13 } 14 15 override var representedObject: AnyObject? { 16 didSet { 17 // Update the view, if already loaded. 18 } 19 } 20} 21

多分、こういうことだと思いますが、違ってたらすいません。

投稿2016/06/29 14:28

Mr_Roboto

総合スコア2208

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

misakiti

2016/06/30 00:36

早急にご返事をいただきありがとうございました。 新たにSwiftファイルを作って追加しないといけなかったのですね。 教えていただいた手順で無事に希望する動作をさせることができました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問