iOS7のキャンセルボタンのテキストの変更に苦労しています。
iOS6 では問題ありません。テキストが変更されています。しかし、iOS7では効果がなく、「キャンセル」で立ち往生しています。
しかし、最終的に、iOS7 のデフォルトの「キャンセル」テキストを変更する以下のコードを見つけました。
現在の問題は、iOS6 で実行すると、検索バーを開くとアプリがクラッシュすることです。
iOS7 と iOS6 の両方で動作するようにこれを修正する理由と方法を知っている人はいますか? これがエラーメッセージです。
2013-11-10 16:58:38.048 Testapp[45017:907] -[__NSCFConstantString setTitle:forState:]: インスタンス 0x11dfc に送信された認識されないセレクター 2013-11-10 16:58:38.050 Testapp[45017:907] *終了アプリキャッチされない例外 'NSInvalidArgumentException' のため、理由: '-[__NSCFConstantString setTitle:forState:]: 認識されないセレクターがインスタンス 0x11dfc に送信されました'
そしてmain.m
int retVal = UIApplicationMain(argc, argv, nil, nil);
Thread 1:signal SIGABRT を取得します
コードは以下の通りです。
-(void)searchDisplayControllerWillBeginSearch:(UISearchDisplayController *)controller{
self.searchDisplayController.searchBar.showsCancelButton = YES;
UIButton *cancelButton;
UIView *topView = self.searchDisplayController.searchBar.subviews[0];
for (UIView *subView in topView.subviews) {
if ([subView isKindOfClass:NSClassFromString(@"UINavigationButton")]) {
cancelButton = (UIButton*)subView;
}
}
if (cancelButton) {
[cancelButton setTitle:@"Testing" forState:UIControlStateNormal];
}
}