<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:blogChannel="http://backend.userland.com/blogChannelModule" >
  <channel>
  <title>初心者が進めるiphoneアプリ開発</title>
  <link>http://iphoneapp.gjpw.net/</link>
  <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://iphoneapp.gjpw.net/RSS/" />
  <description>Macもiphoneすらもよく使ったことのない超初心者がお送りする、iphoneアプリの作り方の解説です。難しいことは抜きにしてとにかく動かしてみましょう。</description>
  <lastBuildDate>Sat, 10 Dec 2016 20:22:35 GMT</lastBuildDate>
  <language>ja</language>
  <copyright>© Ninja Tools Inc.</copyright>
  <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" />

    <item>
    <title>時間を取得して計測に使う（NSDate）</title>
    <description>
    <![CDATA[タイマーを設定して10ms単位でカウントアップしても、タイマーは正確に10msでメソッドの実行ができないので時間を測定するのには使えません。そこでストップウォッチみたいに細かい時間の取得をするには「NSDate」クラスを使って、起動開始の時間と停止の時間との差分を求める方法があります。<br />
<br />
ヘッダでタイマ、タイマスタート時間、タイムアウトで実行するメソッドを宣言します。<br />
<br />

<pre class="c">@interface TestViewController : UIViewController {
    NSTimer *timer1;    //タイマ
    NSDate *stdate;    //タイマスタートの時間
}

- (void)timedisplay:(NSTimer *)timer;    //タイムアウトで時間表示するメソッド

@end
</pre>
<br />
<br />
タイマーを起動する際に、タイマーのスタート時間を取得しておきます。<br />
<br />

<pre class="c">//タイマー動作開始、0.01秒きざみに設定
timer1 =
[NSTimer
scheduledTimerWithTimeInterval:0.01
target:self 
selector:@selector(timedisplay:) 
userInfo:nil 
repeats:YES]; 

//スタート時間の取得
stdate=[NSDate date];
[stdate retain];
</pre>
<br />
<br />
タイムアウト時に数値を表示させる処理を入れます。<br />
ここで、「timeIntervalSinceDate」メソッドを利用することで、ある日時からある日時までの経過秒数を取得することが可能です。<br />
<br />

<pre class="c">- (void)timedisplay:(NSTimer *)timer
{
    NSDate *now=[NSDate date];    //現在の時間を取得
    
    //開始時間と現在時間の差分を、少数点以下2桁で表示
    timedisplay.text=
    [NSString stringWithFormat:@"%.2f",[now timeIntervalSinceDate:stdate]];
}
</pre>
<br />
<br />
これでタイマー起動中は少数点以下の数値がそれらしく動き、タイマーを停止すればタイマーを起動した時間から停止した時間までの差分が出ます。タイマーを停止した直後に結果を表示させます。<br />
<br />

<pre class="c">[timer1 invalidate];
NSDate *now=[NSDate date];
timedisplay.text=
[NSString stringWithFormat:@"%.2f",[now timeIntervalSinceDate:stdate]];
</pre>
<br />
<br />
<img src="//iphoneapp.gjpw.net/File/i0134a.jpg" /><br />
実行結果<br />
<br />
<br />
]]>
    </description>
    <category>未選択</category>
    <link>http://iphoneapp.gjpw.net/%E6%9C%AA%E9%81%B8%E6%8A%9E/%E6%99%82%E9%96%93%E3%82%92%E5%8F%96%E5%BE%97%E3%81%97%E3%81%A6%E8%A8%88%E6%B8%AC%E3%81%AB%E4%BD%BF%E3%81%86%EF%BC%88nsdate%EF%BC%89</link>
    <pubDate>Sat, 10 Dec 2016 20:22:35 GMT</pubDate>
    <guid isPermaLink="false">iphoneapp.gjpw.net://entry/45</guid>
  </item>
    <item>
    <title>要素とキーを対で持つ変更不可配列（NSDictionary）</title>
    <description>
    <![CDATA[NSDictionaryは要素とキーを対として保持する変更不可なオブジェクト配列クラスです。キーを手がかりに要素を取り出すことが可能です。ディクショナリを作成して、キーや要素を取り出す例です。<br />
<br />
<pre class="c">//ディクショナリをメモリ保持で作成
NSDictionary *tel;
tel=[[NSDictionary dictionaryWithObjectsAndKeys:
@"9999-2377-9877",@"荒井",
@"9999-7656-0098",@"加藤",
@"9999-7677-9908",@"佐藤",
@"9999-4432-6678",@"田中",
@"9999-2213-1244",@"中村",nil]retain];

//要素数を得る
int count;
count=[tel count];
NSLog(@"%d",count);
</pre>
<br />
<br />
<img src="//iphoneapp.gjpw.net/File/i0133a.jpg" /><br />
実行結果<br />
<br />
<br />
<pre class="c">//キーから要素を得る
NSString *telStr;
telStr=[tel objectForKey:@"田中"];
NSLog(telStr);
</pre>
<br />
<br />
<img src="//iphoneapp.gjpw.net/File/i0133b.jpg" /><br />
実行結果<br />
<br />
<br />
<pre class="c">//キーの配列を得る
NSArray *arrKeys;
arrKeys=[tel allKeys];

//コンソールに表示
for (NSString *element in arrKeys) {
    NSLog(element);
}
</pre>
<br />
<br />
<img src="//iphoneapp.gjpw.net/File/i0133c.jpg" /><br />
実行結果<br />
<br />
<br />
<pre class="c">//要素の配列を得る
NSArray *arrValues;
arrValues=[tel allValues];

//コンソールに表示
for (NSString *element in arrValues) {
    NSLog(element);
}
</pre>
<br />
<br />
<img src="//iphoneapp.gjpw.net/File/i0133d.jpg" /><br />
実行結果<br />
<br />
<br />
キーの配列と要素の配列のログから、配列として生成される順番はバラバラだけど、「Key」と「Value」の対はちゃんと一致していることが分かります。<br />
<br />
<br />]]>
    </description>
    <category>未選択</category>
    <link>http://iphoneapp.gjpw.net/%E6%9C%AA%E9%81%B8%E6%8A%9E/%E8%A6%81%E7%B4%A0%E3%81%A8%E3%82%AD%E3%83%BC%E3%82%92%E5%AF%BE%E3%81%A7%E6%8C%81%E3%81%A4%E5%A4%89%E6%9B%B4%E4%B8%8D%E5%8F%AF%E9%85%8D%E5%88%97%EF%BC%88nsdictionary%EF%BC%89</link>
    <pubDate>Mon, 19 Sep 2011 06:49:44 GMT</pubDate>
    <guid isPermaLink="false">iphoneapp.gjpw.net://entry/44</guid>
  </item>
    <item>
    <title>PickerViewの使い方（UIPickerView）</title>
    <description>
    <![CDATA[PickerViewは自分で用意した複数の値の中から１つの値を選択してもらう時に使用します。値が選択されるとメソッドが起動して、選択された値を受け取ってそれに対する動作を決定します。<br />
<br />
「View-based Application」のフォーマットで作成したベースアプリを例に、実際に使用してみます。<br />
<br />
<br />
<a href="//iphoneapp.gjpw.net/File/i0132a.jpg" target="_blank"><img src="//iphoneapp.gjpw.net/File/i0132a.jpg" width="500" height="370" /></a><br />
「Interface Builder」を起動し、メニューから「Tools」→「Library」を開きます。「Library - Cocoa Touch - Data Views」から「Picker View」をドラッグしてViewに置きます。Viewの横幅いっぱいで大きいですが、全体のサイズ変更はできないようです。上のラベルは動作確認用です。<br />
<br />
<br />
ヘッダに&lt;UIPickerViewDelegate&gt;を書き加えてプロトコルの実装をしてください。<br />
<br />
<pre class="c">@interface AgeViewController : UIViewController
&lt;UIPickerViewDelegate&gt;{ //プロトコルの実装
    //アウトレット
    IBOutlet UILabel *display;        //ラベル
    IBOutlet UIPickerView *picker;    //ピッカービュー
}

@end
</pre>
<br />
<br />
<a href="//iphoneapp.gjpw.net/File/i0132b.jpg" target="_blank"><img src="//iphoneapp.gjpw.net/File/i0132b.jpg" width="500" height="360" /></a><br />
「Interface Builder」でアウトレットをラベル（動作確認用）とピッカービューに結び付けてください。黒いダイアログは「File's Owner」上で右クリック「control ＋ クリック」をすると出ます。<br />
<br />
<br />
アプリ起動直後、デリゲートを自分自身に設定します。<br />
<br />
<pre class="c">- (void)viewDidLoad {
    [super viewDidLoad];
    picker.delegate=self;    //デリゲートを自分自身に設定
}
</pre>
<br />
<br />
サンプルとして、3列のピッカービューを定義します。1列目は1行、2列目は2行、3列目は3行のコンポーネントを設定します。<br />
<br />
<br />
<pre class="c">//列数の設定（設定する列の数をreturnで返す）
- (NSInteger) numberOfComponentsInPickerView:(UIPickerView *)pickerView {
    return 3;
}


//！！行も列も番号は0から始まるので注意
//列（componentの値で渡される）に対する、行数の設定（設定する行の数をreturnで返す）
- (NSInteger) pickerView: (UIPickerView*)pView
numberOfRowsInComponent:(NSInteger) component {
    if (component==0) {
        return 1;
    }
    else if(component==1){
        return 2;
    }
    else if(component==2){
        return 3;
    }
    else{
        return 0; //帰り値が存在するので、関係ない場合でもとりあえず0を返させる
    }
}


//列（componentの値）、行（rowの値）に対する表示するものを設定
- (NSString*)pickerView: (UIPickerView*)pView
titleForRow:(NSInteger) row forComponent:(NSInteger)component {
    if (component==0) {
        if(row==0){
            return [NSString stringWithFormat:@"a"];
        }
        else {
            return [NSString stringWithFormat:@"0"];
        }
    }
    else if (component==1) {
        if(row==0){
            return [NSString stringWithFormat:@"1"];
        }
        else if(row==1){
            return [NSString stringWithFormat:@"2"];
        }
        else {
            return [NSString stringWithFormat:@"0"];
        }
    }
    else if (component==2) {
        if(row==0){
            return [NSString stringWithFormat:@"あ"];
        }
        else if(row==1){
            return [NSString stringWithFormat:@"い"];
        }
        else if(row==2){
            return [NSString stringWithFormat:@"う"];
        }
        else {
            return [NSString stringWithFormat:@"0"];
        }
    }
    else {
        return [NSString stringWithFormat:@"0"];
    }
}
</pre>
<br />
<br />
ピッカービューの操作が起きたときにイベントを発生させるコードを書きます。このメソッドは、ピッカービューの項目の選択が確定した時に呼ばれます。<br />
<br />
<br />
<pre class="c">//選択されているindexを受け取って、ラベルに表示する
- (void) pickerView: (UIPickerView*)pView
didSelectRow:(NSInteger) row  inComponent:(NSInteger)component {
    int row1;
    int row2;
    int row3;
    
    row1 = [picker selectedRowInComponent:0];  //0列目が選択されているindex
    row2 = [picker selectedRowInComponent:1];  //1列目が選択されているindex
    row3 = [picker selectedRowInComponent:2];  //2列目が選択されているindex
    
    display.text=[NSString stringWithFormat:@"%d - %d - %d",row1,row2,row3];
}
</pre>
<br />
<br />
<img src="//iphoneapp.gjpw.net/File/i0132c.jpg" /><br />
実行するとラベルにピッカービューで選択が確定した時の0～2列目のindex番号が表示されます。<br />
<br />
<br />]]>
    </description>
    <category>未選択</category>
    <link>http://iphoneapp.gjpw.net/%E6%9C%AA%E9%81%B8%E6%8A%9E/pickerview%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9%EF%BC%88uipickerview%EF%BC%89</link>
    <pubDate>Tue, 13 Sep 2011 06:17:15 GMT</pubDate>
    <guid isPermaLink="false">iphoneapp.gjpw.net://entry/43</guid>
  </item>
    <item>
    <title>ナビゲーションバー（UINavigationController）にビューを追加する３</title>
    <description>
    <![CDATA[空のページだと味気ないんで、ウェブページを表示してみます。<br />
<br />
「WebViewController.h」の編集<br />
<br />
<pre class="c">#import <UIKit/UIKit.h>

@interface WebViewController : UIViewController {
    //アウトレットの宣言
    IBOutlet UIWebView *wv;
}

//プロパティを宣言
@property (retain) UIWebView *wv;

@end
</pre>
<br />
<br />
「WebViewController.m」の編集<br />
<br />
<pre class="c">//プロパティを実装
@synthesize wv;
</pre>
<br />
<br />
<a href="//iphoneapp.gjpw.net/File/i0121a.jpg" target="_blank"><img src="//iphoneapp.gjpw.net/File/i0121a.jpg" width="500" height="357" /></a><br />
「WebViewController.xib」を開き、「Library」から「View」へ「Web View」をドラッグ＆ドロップします。大きさは画面全体でいいです。<br />
<br />
<br />
<a href="//iphoneapp.gjpw.net/File/i0121b.jpg" target="_blank"><img src="//iphoneapp.gjpw.net/File/i0121b.jpg" width="500" height="236" /></a><br />
「File's Owner」上で右クリック「control ＋ クリック」し、「wv」を「Web View」に紐付けします。保存して設定完了です。<br />
<br />
<br />
先ほどのソースの部分に、少し書き加えます。<br />
<br />
「RootViewController.m」の編集<br />
<br />
<pre class="c">//テーブルがタップされたときの動作
- (void)tableView:(UITableView *)tableView
didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
    //クリックされたセルの名前を取得
    //ルートのテーブル名と比較
    NSString *name;
    name=[names objectAtIndex:indexPath.row];
    
    //クリックされたセルの名前に対するテーブル表示用
    NSArray *childNames=nil;    //子テーブルのセル文字列格納用
    if ([name isEqualToString:@"東京都"]) {
        childNames=[NSArray arrayWithObjects:@"豊島区",@"港区",nil];
    }
    else if ([name isEqualToString:@"埼玉県"]) {
        childNames=[NSArray arrayWithObjects:@"さいたま市",@"所沢市",@"熊谷市",nil];
    }
    else if ([name isEqualToString:@"千葉県"]) {
        childNames=[NSArray arrayWithObjects:@"柏市",@"我孫子市",nil];
    }
    
    //childNamesの中身があれば実行（下の階層があれば移動する）
    //子のテーブルを作成して、アニメーションしながら移動する
    if (childNames) {
        //RootViewControllerのインスタンスを作成
        RootViewController *childViewController;
        childViewController=[[RootViewController alloc]
        initWithNibName:@"RootViewController" bundle:nil];
        [childViewController autorelease];
        
        //RootViewControllerの設定
        childViewController.title=name;
        childViewController.names=childNames;
        
        //RootViewControllerをコントローラスタックに追加
        [self.navigationController
        pushViewController:childViewController animated:YES];
    }
    else{
        //子の項目がクリックされた場合はこっちを通る
        //WebViewControllerのインスタンスを作成
        WebViewController *webView;
        webView=[[WebViewController alloc]
        initWithNibName:@"WebViewController" bundle:nil];
        [webView autorelease];
        
        //UIWebViewのインスタンスを作成
        webView.wv=[[UIWebView alloc]init];
        webView.wv.scalesPageToFit=NO;
        [webView.view addSubview:webView.wv];
        
        //ページを表示、「港区」ならグーグル、その他はヤフー
        NSString *urlStr;
        if ([name isEqualToString:@"港区"]) {
            urlStr=@"http://www.google.co.jp/";
        }
        else {
            urlStr=@"http://www.yahoo.co.jp/";
        }
        
        NSURL *url=[NSURL URLWithString:urlStr];
        NSURLRequest *req=[NSURLRequest requestWithURL:url];
        [webView.wv loadRequest:req];
        
        //WebViewControllerの設定
        webView.title=name;
        
        //WebViewControllerをコントローラスタックに追加
        [self.navigationController
        pushViewController:webView animated:YES];
    }
}
</pre>
<br />
<br />
<img src="//iphoneapp.gjpw.net/File/i0121c.jpg" /><br />
「港区」だとグーグルへ、<br />
<br />
<br />
<img src="//iphoneapp.gjpw.net/File/i0121d.jpg" /><br />
「熊谷市」だとヤフーへ行きます。<br />
<br />
<br />]]>
    </description>
    <category>未選択</category>
    <link>http://iphoneapp.gjpw.net/%E6%9C%AA%E9%81%B8%E6%8A%9E/%E3%83%8A%E3%83%93%E3%82%B2%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%83%90%E3%83%BC%EF%BC%88uinavigationcontroller%EF%BC%89%E3%81%AB%E3%83%93%E3%83%A5%E3%83%BC%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%99%E3%82%8B%EF%BC%93</link>
    <pubDate>Sun, 04 Sep 2011 23:51:26 GMT</pubDate>
    <guid isPermaLink="false">iphoneapp.gjpw.net://entry/42</guid>
  </item>
    <item>
    <title>ナビゲーションバー（UINavigationController）にビューを追加する２</title>
    <description>
    <![CDATA[子のテーブルの項目がクリックされた場合、追加したビューにページが移るように組み込みます。<br />
<br />
「ナビゲーションバー（UINavigationController）の使い方２」のソース「RootViewController.m」の、タップされた時の動作に組み込みます。<br />
<br />
「RootViewController.m」の編集<br />
<br />
<pre class="c">//ヘッダを追加します
#import "WebViewController.h"

//・・・・・略・・・・・

//テーブルがタップされたときの動作
- (void)tableView:(UITableView *)tableView
didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
    //クリックされたセルの名前を取得
    //ルートのテーブル名と比較
    NSString *name;
    name=[names objectAtIndex:indexPath.row];
    
    //クリックされたセルの名前に対するテーブル表示用
    NSArray *childNames=nil;    //子テーブルのセル文字列格納用
    if ([name isEqualToString:@"東京都"]) {
        childNames=[NSArray arrayWithObjects:@"豊島区",@"港区",nil];
    }
    else if ([name isEqualToString:@"埼玉県"]) {
        childNames=[NSArray arrayWithObjects:@"さいたま市",@"所沢市",@"熊谷市",nil];
    }
    else if ([name isEqualToString:@"千葉県"]) {
        childNames=[NSArray arrayWithObjects:@"柏市",@"我孫子市",nil];
    }
    
    //childNamesの中身があれば実行（下の階層があれば移動する）
    //子のテーブルを作成して、アニメーションしながら移動する
    if (childNames) {
        //RootViewControllerのインスタンスを作成
        RootViewController *childViewController;
        childViewController=[[RootViewController alloc]
        initWithNibName:@"RootViewController" bundle:nil];
        [childViewController autorelease];
        
        //RootViewControllerの設定
        childViewController.title=name;
        childViewController.names=childNames;
        
        //RootViewControllerをコントローラスタックに追加
        [self.navigationController
        pushViewController:childViewController animated:YES];
    }
    else{
        //子の項目がクリックされた場合はこっちを通る
        //WebViewControllerのインスタンスを作成
        WebViewController *webView;
        webView=[[WebViewController alloc]
        initWithNibName:@"WebViewController" bundle:nil];
        [webView autorelease];
        
        //WebViewControllerの設定
        webView.title=name;
        
        //WebViewControllerをコントローラスタックに追加
        [self.navigationController
        pushViewController:webView animated:YES];
    }
}
</pre>
<br />
<br />
<img src="//iphoneapp.gjpw.net/File/i0120a.jpg" /><br />
「豊島区」をクリックすると、「豊島区」という空のページへ移ります。ナビゲーションバーの「東京都」をクリックすると上のページへ戻ります。<br />
<br />
<br />]]>
    </description>
    <category>未選択</category>
    <link>http://iphoneapp.gjpw.net/%E6%9C%AA%E9%81%B8%E6%8A%9E/%E3%83%8A%E3%83%93%E3%82%B2%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%83%90%E3%83%BC%EF%BC%88uinavigationcontroller%EF%BC%89%E3%81%AB%E3%83%93%E3%83%A5%E3%83%BC%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%99%E3%82%8B%EF%BC%92</link>
    <pubDate>Wed, 31 Aug 2011 23:44:30 GMT</pubDate>
    <guid isPermaLink="false">iphoneapp.gjpw.net://entry/41</guid>
  </item>
    <item>
    <title>ナビゲーションバー（UINavigationController）にビューを追加する１</title>
    <description>
    <![CDATA[「Navigation-Based Application」のテンプレートでナビゲーションバーアプリケーションを作成すると、テーブルビューは用意されていてすぐに使用できますが、ほかのビューを表示するには追加してやる必要があります。まずはビューを追加します。<br />
<br />
<br />
<img src="//iphoneapp.gjpw.net/File/i0119a.jpg" /><br />
「Classes」を右クリック「control ＋ クリック」して、「追加」→「新規ファイル...」とたどってクリックします。<br />
<br />
<br />
<a href="//iphoneapp.gjpw.net/File/i0119b.jpg" target="_blank"><img src="//iphoneapp.gjpw.net/File/i0119b.jpg" width="500" height="407" /></a><br />
「UIViewController subclass」を選択し、オプションの「With XIB for user Interface」にチェックを入れて、「次へ」行きます。<br />
<br />
<br />
<a href="//iphoneapp.gjpw.net/File/i0119c.jpg" target="_blank"><img src="//iphoneapp.gjpw.net/File/i0119c.jpg" width="500" height="407" /></a><br />
ファイル名をつけて「完了」で作成されます。「同時にヘッダも作成」にはチェックを入れたままにしてください。<br />
<br />
<br />
<img src="//iphoneapp.gjpw.net/File/i0119d.jpg" /><br />
こんな感じに「h」「m」「xib」の3つのファイルができています。<br />
<br />
<br />
<img src="//iphoneapp.gjpw.net/File/i0119e.jpg" /><br />
「xib」ファイルはドラッグ＆ドロップして「Resources」の中に移しておいてください。<br />
<br />
<br />
<a href="//iphoneapp.gjpw.net/File/i0119f.jpg" target="_blank"><img src="//iphoneapp.gjpw.net/File/i0119f.jpg" width="500" height="224" /></a><br />
新しく作った「WebViewController.xib」を開き、「Library」から「View」をドラッグ＆ドロップしてください。<br />
<br />
<br />
<img src="//iphoneapp.gjpw.net/File/i0119g.jpg" /><br />
「File's Owner」上で右クリックし、「view」を「View」に紐付けします。保存してビューの追加ができました。<br />
<br />
<br />]]>
    </description>
    <category>未選択</category>
    <link>http://iphoneapp.gjpw.net/%E6%9C%AA%E9%81%B8%E6%8A%9E/%E3%83%8A%E3%83%93%E3%82%B2%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%83%90%E3%83%BC%EF%BC%88uinavigationcontroller%EF%BC%89%E3%81%AB%E3%83%93%E3%83%A5%E3%83%BC%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%99%E3%82%8B%EF%BC%91</link>
    <pubDate>Mon, 29 Aug 2011 06:07:24 GMT</pubDate>
    <guid isPermaLink="false">iphoneapp.gjpw.net://entry/40</guid>
  </item>
    <item>
    <title>アラートの表示（UIAlertView）</title>
    <description>
    <![CDATA[アラートはユーザーに確認や注意を促したり、複数の選択肢から選択してもらって結果を得る場合に出す、ポップアップ画面です。<br />
<br />
◆ボタン1個の例<br />
<br />
<pre class="c">UIAlertView *alert=[[UIAlertView alloc]init];
alert.title=@"完了確認";
alert.message=@"設定しました";
[alert addButtonWithTitle:@"了解"];
[alert show];
</pre>
<br />
<br />
<img src="//iphoneapp.gjpw.net/File/i0131a.jpg" /><br />
実行結果<br />
<br />
<br />
◆ボタン2個の例<br />
<br />
ボタンが2個になると、どちらが選択されたかを受け取る必要があります。そこでデリゲートを設定してメソッドを呼ぶように設定します。<br />
<br />
<pre class="c">UIAlertView *alert=[[UIAlertView alloc]init];
alert.delegate=self;  //Alertのボタンが押されるとメソッドが呼ばれる
alert.title=@"内容確認";
alert.message=@"この内容でよろしいでしょうか？";
[alert addButtonWithTitle:@"いいえ"];
[alert addButtonWithTitle:@"はい"];
[alert show];
</pre>
<br />
<pre class="c">//呼ばれるメソッド
- (void)alertView:(UIAlertView *)alertView
clickedButtonAtIndex:(NSInteger)buttonIndex{

    UIAlertView *alert2=[[UIAlertView alloc]init];
    alert2.title=@"完了確認";
    
    if (buttonIndex==0) {
        alert2.message=@"取り消しました";
        [alert2 addButtonWithTitle:@"了解"];
        [alert2 show];
    }
    else if (buttonIndex==1) {
        alert2.message=@"設定しました";
        [alert2 addButtonWithTitle:@"了解"];
        [alert2 show];
    }
}
</pre>
<br />
<br />
<img src="//iphoneapp.gjpw.net/File/i0131b.jpg" /><br />
「いいえ」か「はい」かを選択<br />
<br />
<br />
<img src="//iphoneapp.gjpw.net/File/i0131c.jpg" /><br />
「いいえ」の場合<br />
<br />
<br />
<img src="//iphoneapp.gjpw.net/File/i0131d.jpg" /><br />
「はい」の場合<br />
<br />
<br />
<img src="//iphoneapp.gjpw.net/File/i0131e.jpg" /><br />
（おまけ）ボタンが3つの場合<br />
<br />
<br />]]>
    </description>
    <category>未選択</category>
    <link>http://iphoneapp.gjpw.net/%E6%9C%AA%E9%81%B8%E6%8A%9E/%E3%82%A2%E3%83%A9%E3%83%BC%E3%83%88%E3%81%AE%E8%A1%A8%E7%A4%BA%EF%BC%88uialertview%EF%BC%89</link>
    <pubDate>Fri, 26 Aug 2011 02:14:24 GMT</pubDate>
    <guid isPermaLink="false">iphoneapp.gjpw.net://entry/39</guid>
  </item>
    <item>
    <title>Text Fieldの使い方３（UITextField）</title>
    <description>
    <![CDATA[入力に使用するキーボードのスタイルも変更することができます。<br />
<br />
◆keyboardType（キーボードのスタイル）<br />
<br />
<img src="//iphoneapp.gjpw.net/File/i0130a.jpg" /><br />
<pre class="c">tf.keyboardType=UIKeyboardTypeDefault;
</pre>
<br />
<br />
<img src="//iphoneapp.gjpw.net/File/i0130b.jpg" /><br />
<pre class="c">tf.keyboardType=UIKeyboardTypeASCIICapable;
</pre>
<br />
<br />
<img src="//iphoneapp.gjpw.net/File/i0130c.jpg" /><br />
<pre class="c">tf.keyboardType=UIKeyboardTypeNumbersAndPunctuation;
</pre>
<br />
<br />
<img src="//iphoneapp.gjpw.net/File/i0130d.jpg" /><br />
<pre class="c">tf.keyboardType=UIKeyboardTypeURL;
</pre>
<br />
<br />
<img src="//iphoneapp.gjpw.net/File/i0130e.jpg" /><br />
<pre class="c">tf.keyboardType=UIKeyboardTypeEmailAddress;
</pre>
<br />
<br />
<img src="//iphoneapp.gjpw.net/File/i0130f.jpg" /><br />
<pre class="c">tf.keyboardType=UIKeyboardTypeNumberPad;
</pre>
<br />
<br />
<img src="//iphoneapp.gjpw.net/File/i0130g.jpg" /><br />
<pre class="c">tf.keyboardType=UIKeyboardTypePhonePad;
</pre>
<br />
<br />
※UITextFieldで日本語のキーボードを出す設定は無いですが、キーボードタイプにデフォルトを設定すると、実機において前回使っていたキーボードが出ます。日本語キーボードを出したい場合には「UIKeyboardTypeDefault」に設定しておいてください。<br />
<br />
<br />
◆returnKeyType（キーボードの「return」キー）<br />
<br />
<img src="//iphoneapp.gjpw.net/File/i0130h.jpg" /><br />
<pre class="c">tf.returnKeyType=UIReturnKeyDefault;
</pre>
<br />
<br />
<img src="//iphoneapp.gjpw.net/File/i0130i.jpg" /><br />
<pre class="c">tf.returnKeyType=UIReturnKeyGo;
</pre>
<br />
<br />
<img src="//iphoneapp.gjpw.net/File/i0130j.jpg" /><br />
<pre class="c">tf.returnKeyType=UIReturnKeyGoogle;
</pre>
<br />
<br />
<img src="//iphoneapp.gjpw.net/File/i0130k.jpg" /><br />
<pre class="c">tf.returnKeyType=UIReturnKeyJoin;
</pre>
<br />
<br />
<img src="//iphoneapp.gjpw.net/File/i0130l.jpg" /><br />
<pre class="c">tf.returnKeyType=UIReturnKeyNext;
</pre>
<br />
<br />
<img src="//iphoneapp.gjpw.net/File/i0130m.jpg" /><br />
<pre class="c">tf.returnKeyType=UIReturnKeyRoute;
</pre>
<br />
<br />
<img src="//iphoneapp.gjpw.net/File/i0130n.jpg" /><br />
<pre class="c">tf.returnKeyType=UIReturnKeySearch;
</pre>
<br />
<br />
<img src="//iphoneapp.gjpw.net/File/i0130o.jpg" /><br />
<pre class="c">tf.returnKeyType=UIReturnKeySend;
</pre>
<br />
<br />
<img src="//iphoneapp.gjpw.net/File/i0130p.jpg" /><br />
<pre class="c">tf.returnKeyType=UIReturnKeyYahoo;
</pre>
<br />
<br />
<img src="//iphoneapp.gjpw.net/File/i0130q.jpg" /><br />
<pre class="c">tf.returnKeyType=UIReturnKeyDone;
</pre>
<br />
<br />
<img src="//iphoneapp.gjpw.net/File/i0130r.jpg" /><br />
<pre class="c">tf.returnKeyType=UIReturnKeyEmergencyCall;
</pre>
<br />
<br />]]>
    </description>
    <category>未選択</category>
    <link>http://iphoneapp.gjpw.net/%E6%9C%AA%E9%81%B8%E6%8A%9E/text%20field%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9%EF%BC%93%EF%BC%88uitextfield%EF%BC%89</link>
    <pubDate>Thu, 25 Aug 2011 02:11:51 GMT</pubDate>
    <guid isPermaLink="false">iphoneapp.gjpw.net://entry/38</guid>
  </item>
    <item>
    <title>Text Fieldの使い方２（UITextField）</title>
    <description>
    <![CDATA[UITextFieldのプロパティを変更することによってスタイルなどを変えることができます。<br />
<br />
◆text<br />
<br />
<img src="//iphoneapp.gjpw.net/File/i0129a.jpg" /><br />
<pre class="c">tf.text=@"テキスト";
</pre>
<br />
<br />
◆textColor<br />
<br />
<img src="//iphoneapp.gjpw.net/File/i0129b.jpg" /><br />
<pre class="c">tf.text=@"赤テキスト";
tf.textColor=[UIColor redColor];
</pre>
<br />
<br />
◆borderStyle<br />
<br />
<img src="//iphoneapp.gjpw.net/File/i0129c.jpg" /><br />
<pre class="c">tf.borderStyle=UITextBorderStyleRoundedRect;
tf.text=@"UITextBorderStyleRoundedRect";
</pre>
<br />
<br />
<img src="//iphoneapp.gjpw.net/File/i0129d.jpg" /><br />
<pre class="c">tf.borderStyle=UITextBorderStyleLine;
tf.text=@"UITextBorderStyleLine";
</pre>
<br />
<br />
<img src="//iphoneapp.gjpw.net/File/i0129e.jpg" /><br />
<pre class="c">tf.borderStyle=UITextBorderStyleBezel;
tf.text=@"UITextBorderStyleBezel";
</pre>
<br />
<br />
<img src="//iphoneapp.gjpw.net/File/i0129f.jpg" /><br />
<pre class="c">tf.borderStyle=UITextBorderStyleNone;
tf.text=@"UITextBorderStyleNone";
</pre>
<br />
<br />
◆textAlignment<br />
<br />
<img src="//iphoneapp.gjpw.net/File/i0129g.jpg" /><br />
<pre class="c">tf.textAlignment=UITextAlignmentLeft;
tf.text=@"左寄せ";  //デフォルト
</pre>
<br />
<br />
<img src="//iphoneapp.gjpw.net/File/i0129h.jpg" /><br />
<pre class="c">tf.textAlignment=UITextAlignmentRight;
tf.text=@"右寄せ";
</pre>
<br />
<br />
<img src="//iphoneapp.gjpw.net/File/i0129i.jpg" /><br />
<pre class="c">tf.textAlignment=UITextAlignmentCenter;
tf.text=@"中央寄せ";
</pre>
<br />
<br />
◆placeholder（入力の説明文）<br />
<br />
<img src="//iphoneapp.gjpw.net/File/i0129j.jpg" /><br />
<pre class="c">tf.placeholder=@"登録するサイト名を入力してください";
</pre>
<br />
<br />]]>
    </description>
    <category>未選択</category>
    <link>http://iphoneapp.gjpw.net/%E6%9C%AA%E9%81%B8%E6%8A%9E/text%20field%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9%EF%BC%92%EF%BC%88uitextfield%EF%BC%89</link>
    <pubDate>Wed, 24 Aug 2011 02:17:20 GMT</pubDate>
    <guid isPermaLink="false">iphoneapp.gjpw.net://entry/37</guid>
  </item>
    <item>
    <title>Text Fieldの使い方１（UITextField）</title>
    <description>
    <![CDATA[「Text Field」とはユーザーからの入力を受け取る場合に使用します。「Text Field」がタップされるとユーザーが入力するためのキーボードが出て、キーボードの「return」がタップされるとキーボードが引っ込むものを作ってみます。<br />
<br />
「TestViewController.h」の編集<br />
<br />
<pre class="c">@interface Test2ViewController : UIViewController {
    //アウトレットを追加
    IBOutlet UITextField *tf;
}

@end
</pre>
<br />
<br />
「TestViewController.m」の編集<br />
<br />
<pre class="c">//UITextFieldのデリゲートメソッドを追加
//イベントが発生した場合に呼ばれます

//テキストフィールドを編集する直前に呼び出されます
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{
    NSLog(@"textFieldShouldBeginEditing");
    return YES;  //これをNOにすると、キーボードが出ません
}


//テキストフィールドを編集する直後に呼び出されます
- (void)textFieldDidBeginEditing:(UITextField *)textField{
    NSLog(@"textFieldDidBeginEditing");
}


//Returnボタンがタップされた時に呼び出されます
- (BOOL)textFieldShouldReturn:(UITextField *)textField{
    NSString *retStr;
    retStr=tf.text;  //テキストを受け取って
    NSLog(retStr);  //コンソールに表示
    
    //「resignFirstResponder」はユーザーのアクションに対して
    //最初に応答するオブジェクトを放棄するという命令なので
    //「tf」が放棄されて、キーボードも消えます
    [tf resignFirstResponder];
    return YES;
}


//テキストフィールドの編集が終了する直前に呼び出されます
- (BOOL)textFieldShouldEndEditing:(UITextField *)textField{
    NSLog(@"textFieldShouldEndEditing");
    return YES;  //これをNOにすると、キーボードが消えません
}


//テキストフィールドの編集が終了する直後に呼び出されます
- (void)textFieldDidEndEditing:(UITextField *)textField{
    NSLog(@"textFieldDidEndEditing");
}
</pre>
<br />
<br />
「TestViewController.xib」の編集<br />
<br />
「Resources」から「TestViewController.xib」をダブルクリックして「Interface Builder」を開きます。<br />
<br />
<a href="//iphoneapp.gjpw.net/File/i0128a.jpg" target="_blank"><img src="//iphoneapp.gjpw.net/File/i0128a.jpg" width="500" height="333" /></a><br />
「Library」から「Text Field」を「View」にドラッグ＆ドロップします。<br />
<br />
<br />
<img src="//iphoneapp.gjpw.net/File/i0128b.jpg" /><br />
「File's Owner」上で右クリック「control ＋ クリック」して、黒いダイアログを出し、「tf」と「Text Field」を紐付けします。<br />
<br />
<br />
<img src="//iphoneapp.gjpw.net/File/i0128c.jpg" /><br />
「Text Field」上で右クリックして、黒いダイアログを出し、「delegate」と「File's Owner」を紐付けして保存します。<br />
<br />
<br />
<img src="//iphoneapp.gjpw.net/File/i0128d.jpg" /><br />
実行して「Text Field」をタップするとキーボードが出て入力でき、「return」をタップすると入力を終了します。<br />
<br />
<br />
<img src="//iphoneapp.gjpw.net/File/i0128e.jpg" /><br />
コンソールにはこのようなログが残ります。編集開始メソッド呼び出し後、「Text Field」に入力した内容を受け取ってログに残し、編集終了メソッドが呼ばれています。<br />
<br />
「textFieldShouldBeginEditing」や「textFieldShouldEndEditing」で「return NO;」にすると次のメソッドが呼ばれないので、動作を自由にエディットすることができます。（例：入力するのにキーボードの代わりにPicker Viewを出す）<br />
<br />
<br />]]>
    </description>
    <category>未選択</category>
    <link>http://iphoneapp.gjpw.net/%E6%9C%AA%E9%81%B8%E6%8A%9E/text%20field%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9%EF%BC%91%EF%BC%88uitextfield%EF%BC%89</link>
    <pubDate>Tue, 23 Aug 2011 07:54:49 GMT</pubDate>
    <guid isPermaLink="false">iphoneapp.gjpw.net://entry/36</guid>
  </item>

    </channel>
</rss>