もこたんブログ@mocuLab(・ω・)

Programming & Designing

Xcode Swift:Bar Button Item上に配置したボタンのタッチイベントが動かない

Bar Button Itemに上に配置したボタンに登録したはずのボタンイベントが、タッチしても動かなかったので調べました。

 

現象

ビルドは正常に成功。
タップしたときに呼ばれるはずの処理が呼ばれない。

 

シミュレーターで「追加」をタップすると、addメソッドが呼ばれるはずなのに…

f:id:mocotanus:20170625142352j:plain

ブレークポイントを設定してみたところ、やっぱり入ってこない。

 f:id:mocotanus:20170625142530j:plain

 

原因

接続元が間違っていた。

Bar Button Itemに接続(緑の状態)してしまっていたせい。
Bar Button Itemの配下にある「ボタン」のほうに接続(赤の状態)すればできる。

f:id:mocotanus:20170625144228j:plain

 

 

解決法

Bar Button Itemで右クリック(またはctrl+クリック)で黒い画面を表示させる。
Sent Actionsに追加された接続を「×」を押して削除する。

f:id:mocotanus:20170625144715j:plain

 

ボタンのほうで右クリック(またはctrl+クリック)で黒い画面を表示させる。
Sent EventsのTouch Up Insideの右の○を、接続したいメソッドへドラッグ&ドロップする。

f:id:mocotanus:20170625145340j:plain

 

ビルドしてシミュレーターで確認してみてください。呼ばれるようになっているはずです。

 

予防法

Bar Button Itemを選択している状態の表現と、
ボタンを選択している状態の表現が違うので、目で見て気をつける。

・Bar Button Itemのときは角丸なしの四角形で選択状態

f:id:mocotanus:20170625150447j:plain

 

・ボタンのときは角丸の四角形で選択される

f:id:mocotanus:20170625150533j:plain

 

リストから接続すると確実。


トーリーボードからボタンを選択したいときは、ダブルクリック(ゆっくり2回クリックでもできた)すれば、Bar Button Itemじゃなくてボタンのほうを選択できる。

iOS Simulator起動でUITextFieldのキーボードが自動で表示されない Xcode Swift

フォーカスした時に自動でキーボードを表示するには、

Simulator>Hardware>Keybords>Connect Hardware Keyboardのチェックを外す

そうするとフォーカス時に自動で出るようになります。 

f:id:mocotanus:20170615052943j:plain

 

エラー「ブレークポイントは、現在の設定ではヒットしません。ソースコードが元のバージョンと異なります」

ブレークポイントは、現在の設定ではヒットしません。ソースコードが元のバージョンと異なります

メニューの
ビルド>クリーン
からリビルドしたらなおる

 

TFS(Team Foundation Server)で確認後にチェックアウトするように設定する

VisualStudioのメニューから

ツール>オプション>ソース管理>環境>チェックアウトを確認する
の項目が「自動で〜」になっていると、確認画面なしですぐにチェックアウトしてしまいます。

保存:チェックアウトを確認する
編集:チェックアウトを確認する
に変更します。そうすると、「チェックアウトしますか?」のような確認画面が出てくるように変更できます。

Visual Studio for Mac エラー「Android SDK が見つかりませんでした」Android SDKのパスの設定の方法

Error: Android SDK が見つかりませんでした。Xamarin.Android SDK の設定パネルでパスを設定してください。

というエラーが出ました。

f:id:mocotanus:20170510060501j:plain

 

Android SDK のインストー

そもそもインストールについては別の記事に記載しています。
 上記のAndroid SDKのところでやってます。 

Android SDK のパス設定

Visual Studio > ユーザー設定 > SDKの場所 > Android

f:id:mocotanus:20170511234328j:plain

 

参照ボタンをクリックして、フォルダを選択します。
(ライブラリフォルダを常に表示するように設定変更しています。)
「ライブラリ」ではなく「Library」の表記になっています。

f:id:mocotanus:20170511234448j:plain

f:id:mocotanus:20170511234652j:plain

f:id:mocotanus:20170511234959j:plain

よければOKをクリック。

 

または
ツール > SDK Manager
でも同じことができます。

f:id:mocotanus:20170511234348j:plain

 

これでAndroid SDK のパスの設定はできました。

 

確認

再度ビルドしてみます。

f:id:mocotanus:20170511235403j:plain

 

えぇー(´・ω・`)?大量のエラーが新しく出てきましたが(´・ω・`;)
とりあえずこれでAndroid SDK のパスの設定はできました。

f:id:mocotanus:20170511235412j:plain