FC2ブログ

頭と尻尾はくれてやる!

パソコンおやじのiPhoneアプリ・サイト作成・運営日記


macOSでNSPopUpButtonとたわむれる

macOSにはNSPopUpButtonなるものがあって、いくつかの選択肢から選べるようなボタンだ。

NSPopUpButton選択前

↑見た目はこんなの。

NSPopUpButtonクリック時

↑クリックすると選択肢が現れて選ぶことができるってやつ。

バインドとかもあるんだけど、自分が一番理解しやすかった簡単なやり方を紹介。delegateも設定しない。

まずはstoryboardでpopup buttonを設置する。

Xcode10の部品選択画面

↑部品選択画面でpopupとでも打てばいくつか候補が出てくる。この画面はなんだ?という場合はこちらをどうぞ↓

Storyboardで部品を選ぶ方法

一番上のPop Up Buttonをドラッグ&ドロップ。

このオブジェクトの参照がコード側で欲しいのでつないであげる。
あらかじめコード側に
{
    IBOutlet NSPopUpButton *popupButton;
}
などと用意しといてstoryboardでReferencing Outletsを接続。

デフォだと選択肢として3つほど項目があるけど今回はコード側で設定したいので削除したい。

NSPopUpButtonのクラス構成

↑storyboardのボタンのところの構成を見るとMenuの下にItem 1とかあったりすると思うけど3つとも削除(画像は削除した後)。

選択肢の項目をコード側で設定したいので、viewDidLoad内など適当なところで↓このように追加する。
{
    [popupButton addItemWithTitle:@"Osaka"];
    [popupButton addItemWithTitle:@"Kyoto"];
    [popupButton addItemWithTitle:@"Nara"];
}
設定できない!って場合はもしかしたらまだstoryboardに置いた部品のオブジェクトができていない場所で設定しているのかも。オブジェクトがちゃんとできてるかチェックしてみましょう。
他にも似たような追加、挿入、削除用のメソッドがあるのでリファレンスをどうぞ。

ここで実行すればとりあえず選択はできると思う。popupButtonのプロパティからどれが現在選択されているかわかるはず。

でもやっぱり、ボタンで何か選択した場合にコールされるようにしておきたい。
{
-(IBAction)tappedPopupButton:(id)sender
{
    NSPopUpButton *button = (NSPopUpButton *)sender;
    
    NSLog(@"titleOfSelectedItem=%@", button.titleOfSelectedItem);
    NSLog(@"indexOfSelectedItem=%ld",(long)button.indexOfSelectedItem);
}
↑こんなコードを作っておいて、、、

outlet接続

↑storyboardのactionのところでつなぐ。

実行結果のログ

↑これで一応ボタンを閉じた時にこのメソッドがコールされる。画像は実行時のログ。
ただし、変更がなくてもコールされるのでそのあたりは実装時に注意する、ということで。



<< Amazonプライムビデオで見たアニメ  TopPage  学習後パラメータをファイルからMPSで読み込む(CNNの場合) >>

コメント


管理者にだけ表示を許可する
 

トラックバック

トラックバックURL
http://ringsbell.blog117.fc2.com/tb.php/1214-27a902a0




Copyright ©頭と尻尾はくれてやる!. Powered by FC2 Blog. Template by eriraha.

FC2Ad