2015年1月30日金曜日

iPhoneかiPadかの判定

UIUserInterfaceIdiomPhoneがiPhoneを、UIUserInterfaceIdiomPadがiPadを示す。
if ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPhone) {
        //iPhoneの時の処理;

    }


[UIDevice currentDevice].userInterfaceIdiomUI_USER_INTERFACE_IDIOM()でも置き換えられる。こっちのほうが簡単だわな。


BOOL isPad = YES;
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
    isPad = YES;
} else {
    isPad = NO;
}

NSLog(@"iPad? :%@",isPad == YES ? @"Pad" : @"Phone");

2015年1月19日月曜日

UIWebViewの画面をクリアする

UIWebViewで、画面移動時などに前に表示していたサイトが見えていると、見栄えが良くない。
あらかじめNSURLの値に@"about:blank"を入れてやるとWebViewの画面がクリアされて白くなってくれる。

[_webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"about:blank"]]];
[_webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.hogehoge.jp"]]];

2015年1月7日水曜日

シミュレータでソフトウェアキーボードが出なくなったら

デバッグ中に何をやったかしらないが、シミュレータでUITextFieldとかをタップしてソフトウェアキーボードを出そうとしても、出なくなり(Macのキーボードから直接値は入力できる)

2015-01-07 23:48:31.018 SkyReporter[40746:1649582] Can't find keyplane that supports type 4 for keyboard iPhone-Portrait-NumberPad; using 3876877096_Portrait_iPhone-Simple-Pad_Default

上記のようなメッセージが表示されてしまった。
調べたところ、何かのはずみでiOSシミュレータの設定が切り替わってしまったようで、
iOSシミュレータのメニューの
Hardware/Keyboard/Connect Hardware Keyboardのチェックを外してやれば、ソフトウェアキーボードが再び表示されるようになる。

ただし、なぜかメッセージは消えてくれないようだ。
消えなくてもiOSシミュレータだけの問題のようなので、そのままAppStoreの審査を通った人がいるようなので、気持ち悪いけど気にしなくていいようだ。

参考: