AmazonHtml
AmazonHtml という@matubiz さん作成の素敵ブクマがあります。
Amazonの商品リンクを簡単に生成してくれるというブクマで、
@hiro45jp さんのAppHtmlから智の連鎖で生まれた素晴らしいブクマです。
アマゾン商品紹介用ブックマークレット「AmazonHtml」復活。Ver 2.0へ! | matuダイアリー
【近況】Bookmarkletを見直してます…。 | 普通のサラリーマンのiPhone日記
今のところChrome非対応
ただ、とても残念ながらChromeには非対応です。
AppHtmlが生成するHTMLがChromeの文字数制限をオーバーしてしまうからです。
商品候補はちゃんと表示されるのですが、最後のHTML生成「Result」が空のままなのです。
対応させてみた
こんなに便利なブクマがChrome で使えないのは悲しい。
と言うことで、ちょこっといじって対応させてみました。
やっつけなので[HTML選択]などのボタンはありません。
ですが、とりあえずHTMLを取得することは可能です。

改造方法
Chromeの制限に引っ掛かる部分を、以下の内容に書き換えます。
登録したブクマのソースコード末尾ちょっと手前に、以下の様な部分があります。
if(x)var r=prompt('Results.',x);
2012.05.18 追記
AmazonHtml2.0 には「ダイレクトモード」と呼ばれるAmazonページから直でHTMLを生成する機能があるのですが、その部分もソースコードの差し替えが必要です。
具体的には、先に挙げたif(x)var … で始まる部分の更に手前。
この部分です。
var r = prompt('Results.', x);
上記の部分も同様に以下の内容で書き換えます。
それを以下の内容に書き換えます。
コピー&ペーストで差し替えてしまいましょう。
if (x) {
var textarea = document.createElement('textarea');
textarea.setAttribute('style',
'position:fixed;
top:0px;
left:0px;
opacity:0.6;
width:100%;
height:20%');
textarea.value = x;
document.body.appendChild(textarea);
}
出来上がりはこんな感じ
出来上がりはこんな感じです。
David Flanagan
オライリー・ジャパン 2007-08-14
¥ 4,410
キーボードを手元の操作で出し入れしたいときに
ツールバーをちょいと上にスワイプするとキーボード出現。
ちゃッと下にスワイプするとキーボード収納。
ちなみに、この記事ではツールバーを使っていますが、
スワイプ検知を関連付けるのはツールバーじゃなくてもOKです。
1.スワイプ時に呼び出すメソッドを定義
スワイプ時に呼び出すメソッドを定義します。
(今回は単にUISearchBar にフォーカスをあてたり外したりするだけ。)
// 上方向スワイプ時の処理
- (void)swipeUpKeyboard:(id)sender {
[self.searchBar becomeFirstResponder]; // 例)サーチバーにフォーカス
}
// 下方向スワイプ時の処理
- (void)swipeDownKeyboard:(id)sender {
[self.searchBar resignFirstResponder]; // 例)サーチバーのフォーカスを外す
}
2.スワイプ方向に応じて処理を指定
viewDidLoad でツールバーにスワイプ方向に応じて処理の呼び出しを設定。
- (void)viewDidLoad {
[super viewDidLoad];
// ツールバー上スワイプ
UISwipeGestureRecognizer* toUpSwipeGesture =
[[UISwipeGestureRecognizer alloc]
initWithTarget:self
action:@selector(swipeUpKeyboard:)]; // 上スワイプ時処理を呼び出し
toUpSwipeGesture.direction = UISwipeGestureRecognizerDirectionUp;
[self.toolBar addGestureRecognizer:toUpSwipeGesture];
// ツールバー下スワイプ
UISwipeGestureRecognizer* toDownSwipeGesture =
[[UISwipeGestureRecognizer alloc]
initWithTarget:self
action:@selector(swipeDownKeyboard:)]; // 下スワイプ時処理を呼び出し
toDownSwipeGesture.direction = UISwipeGestureRecognizerDirectionDown;
[self.toolBar addGestureRecognizer:toDownSwipeGesture];
}
3.キーボードの表示/収納を検知させる
ツールバーの位置はキーボードのタイプに応じて変わります。
viewWillAppear にNSNotificationCenter を設置。
キーボードの表示/収納を検知させて、ツールバーの位置を調整。
詳細は以下の過去記事を参照のこと。
【参考】
UIKeyboardDidHideNortification でキーボードの高さを取得しても、高さはゼロではない。 | 極上の人生
ちなみにTwitter での会話がきっかけ
とても便利に使わせて頂いているQuicka のアップデートがありまして。
その際にQuicka の作者@rakuishi07 さんとした会話が今回の記事のきっかけです。
「たしかモレスキンに書いていたな…」と。*
Quicka 1.2(¥85)
カテゴリ: 仕事効率化, ユーティリティ
販売元: rakuishi – KOICHIRO OCHIISHI(サイズ: 0.1 MB)
全てのバージョンの評価: 


(34件の評価)
FastEver – 素早く簡単にEvernoteにメモ 1.9.4(¥85)
カテゴリ: 仕事効率化, ユーティリティ
販売元: rakko entertainment – rakko entertainment(サイズ: 1.3 MB)
全てのバージョンの評価: 



(1,457件の評価)
UITextField でリターンキーを押した際の処理を実装する。
リターンキーと同時に、自前の処理を行わせたい場合などに使う。
1.UIViewController の.hファイルにUITextFieldDelegate プロトコル追加
@interface MyUIViewController : UIViewController <UITextFieldDelegate>
2.viewDidLoad 内でメソッドを適用したいtextField に自身をDelegate
- (void)viewDidLoad : (BOOL)animated {
[super viewDidLoad:animated];
[self.myTextField setDelegate:self];
}
3.textFieldShouldReturn メソッドを実装
- (BOOL)textFiledShouldReturn : (UITextField*)textField {
// ここに自前のリターンキー押時処理
[return YES];
}
1.1つ前の画面に戻る
[self.navigationController popViewControllerAnimated:YES];
2.ルート画面まで一気に戻る
[self.navigationController popToRootViewControllerAnimated:YES];
3.任意の画面(UIViewController)まで戻る
[self.navigationController popToViewController:UIViewController animated:YES];
以前、このような記事を書きました。
ありがたいことに、今でも結構な数のアクセスを頂いております。
MacのターミナルでC言語の練習環境を用意してみたよ | 極上の人生
gccコマンドが効かない!?
さて、最近この記事に以下の様な質問コメントを頂きました。
“gcc と打ってもコマンドが見つからないと出てしまいます。
Xcode入れてからなにか操作がひつようなのでしょうか?”
はて?
Xcodeをインストールしてしまえば、gccなどのコマンドラインツールは手に入るはず…。
などと考えながらも、ググってみました。*
キーワードは「Mac ターミナル gcc コマンドが見つからない」
Xcode4.3 for Lion(2012年02月公開)は
コマンドラインツールが自動インストールされないらしい
調べてみると、この様な記事がヒット。
Xcode 4.3でコマンドラインツールをインストールする手順 – FAMLog
どうやらXcode4.3 for Lion(2012年02月公開)は、
コマンドラインツールが自動インストールされないらしいです。*
Xcode4.3 からコマンドラインツールをインストールする手順
そんなわけで、Xcode4.3 からコマンドラインツールをインストールする手順です。
流れ
Xcodeを開いて、以下の作業をするだけです。
- [Xcode]メニューを開く。
↓
- [Preferences...]メニューを選択。
↓
- [Downloads]タブを選ぶ。
↓
- [Components]セグメントを選ぶ。
↓
- [Command Line Tools]を選ぶ。
↓
- [Install]を押して、コマンドラインツールをインストールする。
1.[Xcode]メニューを開く。
[Xcode]メニューを開きます。

2.[Preferences...]メニューを選択。
[Preferences...]メニューを選択します。

3.[Downloads]タブを選ぶ。
[Downloads]タブを選びます。

4.[Components]セグメントを選ぶ。
[Componentes]セグメントを選びます。

5.[Command Line Tools]を選ぶ。
[Command Line Tools]を選びます。

6.[Install]を押して、コマンドラインツールをインストールする。
[Install]を押して、インストール開始。

インストール完了
コマンドラインツールのインストールは済みましたか?
それでは、もう一回こちらの記事でMacターミナルでC言語学習にチャレンジです!
MacのターミナルでC言語の練習環境を用意してみたよ | 極上の人生
あとがき
今回の記事のきっかけになったコメントを下さったNaoyuki 1205 さん、
お役に立ちましたでしょうか?
他にも「役に立った!」と言う方がいらっしゃいましたら、
ツイートでもFacebookのLikeでも反応頂けると嬉しいです。
1.UITextFieldDelegateプロトコルを追加
.hファイルにUITextFieldDelegate プロトコルを追加する
@interface hogeViewController : UIViewController <UITextFieldDelegate>
2,setDelegateを実装
.mファイルのviewDidLoad にsetDelegate を実装
- (void)viewDidLoad {
[super viewDidLoad];
[self.textField setDelegate:self];
}
3.文字数制限をかける
shouldChangeCharactersInRangeメソッドを実装し、内部で文字数制限をかける。
- (BOOL)textField:(UITextField*)textField
shouldChangeCharactersInRange:(NSRange)range
replacementString:(NSString*)string {
int maxLength = 8; // 制限文字数
NSMutableString* text = [textField.text mutableCopy];
1;
return 1 <= maxLength;
}
おまけ
複数のtextFieldを持つ場合は、tag などで識別して処理を分岐させること。
セルを左スワイプすると出てくるアレ。

実は、以下のメソッドを空で実装するだけでOK。
- (void)tableView:(UITableView*)tableView
commitEditingStyle:(UITableViewCellEditingStyle)editingStyle
forRowAtIndexPath:(NSIndexPath*)indexPath {
}
【参考】
iPhoneアプリ開発、その(190) 削除するぜ!|テン*シー*シー
UITableView で行選択をすると、その行がハイライト表示に変わります。
で、通常はUITableViewController を継承しているので、viewWillAppear の中で[super viewWillAppear:animated]; とやっておけば、ハイライト解除もちゃんと行われるのですが、自前のUIViewにUITableViewを放り込んで使っている場合などUITableViewController を使わずにUITableViewを使用する場合があります。
そんなとき、UITableViewの選択解除を行う方法です。
方法
viewWillAppear メソッドの中でdeselectRowAtIndexPathを呼んでやる。
こんな感じ。
-(void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
UITableview* table = self.myTable;
[table deselectRowAtIndexPath:[table indexPathForSelectedRow] animated:NO];
deselectRowAtIndexPath は選択状態を解除したい行のインデックスを要求してくるので、そこにindexPathForSelectedRow を使って「選択されている行のインデックス」を渡してやるのがポイント。
以前に書いた、この記事の続きです。
ActionSheet を使う | 極上の人生
上記の記事では、アクションシートの表示に関する内容だけでした。
今回は、表示されたアクションシートで、選ばれた項目ごとに処理を実行する部分。*
1..h ファイルに UIActionSheetDelegate プロトコルを読み込む。*
2..m ファイルに以下を実装。
- (void)actionSheet:(UIActionSheet*)actionSheet clickButtonIndex:(NSInteger)buttonIndex {
// ボタンインデックス(buttonIndex)に応じてswitch 文で処理を分岐
switch ( buttonIndex ) {
case 0:
// ここに一番最初のボタン用処理
break;
case 1:
// ここに二番目のボタン用処理
break;
// ...
default:
上記のcase に該当しなかった場合の処理
break;
}
}
以上です。
NavigationController の「戻る」ボタンを消すには、
viewDidLoad に以下の1文を追記するだけで良い。
- (void)viewDidLoad {
[super viewDidLoad];
// この1文を追記するだけ
[self.navigationItem setHidesBackButton:YES];
}