0

カスタムキーボード拡張機能があります。また、キーボードがいつ表示/非表示になるかを知る必要があります。私はこの記事、このブロックを読みました:

- (void)registerForKeyboardNotifications
{

    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(keyboardWasShown:)
                                                 name:UIKeyboardWillShowNotification object:nil];

    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(keyboardWillBeHidden:)
                                                 name:UIKeyboardWillHideNotification object:nil];

}

// Called when the UIKeyboardDidShowNotification is sent.
- (void)keyboardWasShown:(NSNotification*)aNotification
{

}

// Called when the UIKeyboardWillHideNotification is sent
- (void)keyboardWillBeHidden:(NSNotification*)aNotification
{


}

しかし、このコードはアプリに実装されています。addObserver引数はそれselfを意味します。では、ホスト アプリ (テキスト フィールドを持つ任意のアプリ) からオブジェクトを取得して、登録通知に渡すにはどうすればよいでしょうか?

または、キーボードが表示/非表示の場合に登録する他の3つのオプションはありますか?

isfirstResponder も拡張から - オプションではないと思います。

4

3 に答える 3

0

これは私が答えるには遅すぎるかもしれませんが、NSNotifications からその情報を取得することはできません。実際には、ほとんどの NSNotifications がキーボード拡張機能のサンドボックス内で無効になっているため、このコードは機能しないと思います。

たとえば、OnCopyClipboard 通知を使用しようとしましたが、うまくいきませんでした。これを実行しましたか?私はそれらの結果に非常に興味があります。

申し訳ありませんが、いいえと言わざるを得ません。これは、キーボード拡張機能がサンドボックスでよく知られているためです。

于 2014-12-22T19:49:49.757 に答える
0

これは、拡張機能を使用していたときに直面した同じ問題です。いろいろ調べたところ、拡張機能からメインアプリに送信できることがわかりました。

CFNotificationCenterGetDarwinNotifyCenter を使用して使用できます。

これに関連して書いたブログのリンクは次のとおりですhttps://medium.com/@saberjack/ios-sending-notifications-between-your-apps-3fe7422d6a41

お役に立てれば

于 2015-04-02T18:28:48.893 に答える