[iPhone]UITextFieldにコピー/ペーストメニューを出さないようにする
コピーペーストメニューを出さないようにするにはこうする。
UITextFieldを含むUIViewController.mに上記のメソッドを実装すればよい。
-(BOOL)canPerformAction:(SEL)action withSender:(id)sender
{
UIMenuController *menuController = [UIMenuController sharedMenuController];
if (menuController) {
[UIMenuController sharedMenuController].menuVisible = NO;
}
return NO;
}
UITextFieldを含むUIViewController.mに上記のメソッドを実装すればよい。
スポンサーサイト
[iPhone]UIWebViewに自己署名証明書を許可させる方法
UIWebViewを使ったアプリとサーバーを組み合わせたシステムを開発するようなケースで。
サーバー側で正式な証明書が用意できていない段階で、テストしなければならないような時、
自己署名証明書をとりあえず無視したいことがあると思う。
合法な方法では(現時点では)不可能らしい。
一時的にテストを進めるため、undocumented な方法ではあるが、
以下のような方法がある。
How to ignore ssl certificate challenge with UIWebView and NSUrlRequest? - General discussion - MonoTouch Forums
つまり、NSURLRequestのカテゴリによって、システムの挙動を変えてしまうという作戦だ。
アンドキュメンテッドな方法なので、ほぼ確実に正式アプリとしては登録できない、
という点にはくれぐれも注意が必要だ。
サーバー側で正式な証明書が用意できていない段階で、テストしなければならないような時、
自己署名証明書をとりあえず無視したいことがあると思う。
合法な方法では(現時点では)不可能らしい。
一時的にテストを進めるため、undocumented な方法ではあるが、
以下のような方法がある。
How to ignore ssl certificate challenge with UIWebView and NSUrlRequest? - General discussion - MonoTouch Forums
@interface NSURLRequest(SSL)
+ (BOOL)allowsAnyHTTPSCertificateForHost:(NSString *)host;
@end
@implementation NSURLRequest(SSL)
+ (BOOL)allowsAnyHTTPSCertificateForHost:(NSString *)host {
// do some filter based off of "host" here
return YES;
}
@end
つまり、NSURLRequestのカテゴリによって、システムの挙動を変えてしまうという作戦だ。
アンドキュメンテッドな方法なので、ほぼ確実に正式アプリとしては登録できない、
という点にはくれぐれも注意が必要だ。
[iPhone]URLエンコードする方法
iPhone SDK でURLエンコードするには、以下のように、
CFURLCreateStringByAddingPercentEscapes を使う。
第3パラーメータに、エンコード除外文字を指定するのがポイント。
CFURLCreateStringByAddingPercentEscapes を使う。
第3パラーメータに、エンコード除外文字を指定するのがポイント。
NSString* encodedUrl = (NSString *)CFURLCreateStringByAddingPercentEscapes(
NULL,
(CFStringRef)urlString,
CFSTR(";,/?:@&=+$#"),
NULL,
kCFStringEncodingUTF8);
[iPhone]IBを使わずコード内でUITextFiledのsecureプロパティ等をセットする方法
以下のように、UITextFiledのプロパティにセットすれば良い。
のだが、これらのプロパティのドキュメントが見当たらないぞ?と思ったところ、
これらのプロパティは UITextFiled そのものではなく、UITextInputTraits
というプロトコルとして定義されているらしいので、UITextInputTraits の
ドキュメントを調べる必要がある。
UITextField* textField = ほげ;
[textField setKeyboardType:UIKeyboardTypeASCIICapable];
[textField setReturnKeyType:UIReturnKeyDone];
textField.secureTextEntry = YES;
のだが、これらのプロパティのドキュメントが見当たらないぞ?と思ったところ、
これらのプロパティは UITextFiled そのものではなく、UITextInputTraits
というプロトコルとして定義されているらしいので、UITextInputTraits の
ドキュメントを調べる必要がある。
UITextField* textField = ほげ;
[textField setKeyboardType:UIKeyboardTypeASCIICapable];
[textField setReturnKeyType:UIReturnKeyDone];
textField.secureTextEntry = YES;
[iPhone]文字列をURLエンコードする方法
UIWebView等に渡すためのURL文字列を、URLエンコードするには、以下のように
CFURLCreateStringByAddingPercentEscapes を使う。
第3パラメータに、エスケープ対象外の文字をしてしている点がポイント。
CFURLCreateStringByAddingPercentEscapes を使う。
第3パラメータに、エスケープ対象外の文字をしてしている点がポイント。
NSString* encodedUrl = (NSString *)CFURLCreateStringByAddingPercentEscapes(
NULL,
(CFStringRef)urlString,
CFSTR(";,/?:@&=+$#"),
NULL,
kCFStringEncodingUTF8);