4

現在、uiwebview にテキストを表示しています。ただし、ユーザーがテキストを選択し、選択したテキストで何らかのアクションを実行できるようにしたいと考えています (google it)。Apple は、iBooks でこの種のことを行いました。単語をクリックすると、その単語を辞書で調べることができます。Webviewで同じことを行うにはどうすればよいですか?

UIMenuController は、私が見る必要があるようです。しかし、これを行う方法に関するサンプルコードは見つかりませんでした。私はiPhone開発に不慣れです。助けてください。

4

2 に答える 2

8

iOS 3.2以降では、UIMenuControllerを使用して、UIWebViewでテキストを選択したときに表示されるシステムメニューにUIMenuItemを追加できます。簡単な例を次に示します。

- (void)viewDidLoad {
    [super viewDidLoad];

    UIMenuItem *defineItem = [[[UIMenuItem alloc] initWithTitle:@"Define" action:@selector(defineSelection:)] autorelease];
    [[UIMenuController sharedMenuController] setMenuItems:[NSArray arrayWithObject:defineItem]];
}

- (void)defineSelection:(id)sender {
    NSString *selection = [webView stringByEvaluatingJavaScriptFromString:@"window.getSelection().toString()"];
    // Do something with the selection
}

Appleは、これがどのように機能するかについて、『デバイス機能プログラミングガイド』の「カスタム編集メニュー項目の追加」セクションで説明しています。

于 2010-07-07T19:39:00.203 に答える
1

開発者によるこの最近のブログ投稿は、少なくとも iPad iOS ブランチでは、一部の iBooks 機能がプライベート API に基づいていることを示唆しているように思われます。

于 2010-07-07T20:49:28.577 に答える