問題タブ [uitextview]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
iphone - テキストビューが選択されると、UITextview コンテンツが上に移動します
私はこのiPhone開発にかなり慣れていませんが、これまでのところかなり良いアプリを構築しましたが、私の人生では解決できないように見えるこの問題に遭遇しました.
基本的にアプリはソーシャルサイト向けのチャットアプリです。現在UITextboxである入力ボックスを除いて、すべてが100%機能しています。これは問題なく動作しますが、ボックスを拡大してスクロール付きの複数行の UITextbox にしたいと考えています。UITextbox を UITextview に置き換えましたが、すべて問題ありません。ユーザーがテキストを入力すると、UITextview が拡張されますが、ちょっとした問題が 1 つあります。
UITextview がフォーカスされると、カーソルとそこにあるテキストが表示されなくなります。デフォルトで 2 行を表示するように設定した UITextview は、テキストの高さがこれらの 2 行を超えると、ボックスが大きくなり (実際にそうなります)、テキストが上にスクロールされたままになり、自分が何であるかを確認できるようになります。タイピング。iPhone の SMS アプリを見ると、これはまさに私が望んでいる動作です。
知恵の言葉は大歓迎です。
iphone - プログラムで設定するとUITextView selectedRangeが表示されない
私の問題は、UITextView の selectedRange をプログラムで設定すると、テキストが選択されますが、選択されていることを視覚的に示さないことです。これは OS 3.0/3.1 のバグのように聞こえますか? さらに重要なことに、選択を表示するための解決策や提案はありますか? (サンプル プロジェクトはメッセージの下部にリンクされています)
視覚的なフィードバックが得られないので、それが選択されていることをどうやって知ることができますか? 2 つの理由:
- 点滅カーソルなし
- キーボードの任意のキーをタップすると、選択範囲内の既存のテキストが削除されます。
ユーザーが変更可能な値を編集できるビューコントローラーに UITextView があります。エディター コントローラーは、テーブルの行でダブルタップを受け取るか、ユーザーが行の詳細開示ボタンをタップすると開きます。viewcontroller は presentModalViewController 経由で到着し、エディター VC の viewWillAppear メソッドで、次のコマンドでキーボードを開始します。[self.textView becomeFirstResponder];
ユーザーが入力を開始するだけで既存のコンテンツを削除できるように、テキストビューのコンテンツ全体を選択してエディターを起動したい場合があります (これは、デフォルトのタイトルで新しいアイテムを作成するため、ユーザーが最初に削除することはほぼ確実です)エディターのテキスト フィールドの内容全体を入力してから、タイトルを入力します)。
私がすでに試したことのいくつか:
- 選択した範囲をviewDidAppearに設定します(textViewDidBeginEditingで行う代わりに、それに加えて)。
- _textView.text をその中のテキストのコピーに置き換えてから、(textViewDidBeginEditing で) selectedRange を適用します...フレームワークのバグを扱っている場合、これは回避される可能性があります。
[[_textView webView] selectAll];
(プライベート API)。同じ動作で、視覚的なフィードバックなしでテキストが選択されます。- _textView setNeedsDisplay および setNeedsLayout を送信します。
- performSelector ... afterDelay を使用して selectedRange を設定し、textViewDidBeginEditing を終了した後に発生するようにします。
-- 編集 --
これは、Apple BugReporter に提出されたサンプル プロジェクトです。BugReport_7380723 サンプル プロジェクトのダウンロード
追加情報:
サンプル プロジェクトの提出物を作成して遊んでいるうちに、次の 2 つのことがわかりました。
テキストが選択されているがハイライトが表示されていない場合、いくつかのキーストロークをタップしてから「シェイクして元に戻す」と、元のテキストが復元されますが、ハイライトされます。
テキストビューで手動で選択し、[すべて選択] ボタンをタップすると [上記のサンプル プロジェクトを参照]、すべてのテキストが選択され、ハイライトが適切に表示されます。
iphone - UITextViewでのユーザー入力はデリゲートメソッドを2回呼び出しますか?
文字列をユーザー入力の文字と比較したい。たとえば、ユーザーに「私はりんごを持っています」と入力させたいとします。入力をこの文字列と比較して、入力が正しいかどうかを確認します。間違った文字を入力すると、iPhone が振動してすぐに知らせます。問題は、スペースのような一部の文字がデリゲート メソッドを 2 回呼び出すことです。
p>スペース キーを押すと、最初にテキストと ' ' を比較すると、結果は同じ文字であることがわかります。しかし、その後、文字列のインデックスを次の文字に進める必要があります。デリゲート メソッドが 2 回目に呼び出されると、iPhone が振動します。この問題を解決する方法についてのアイデアはありますか?
これが私のコードです:
iphone - iPhoneキーボードシフト状態:それを制御する方法は?
私の質問がばかげている場合は申し訳ありませんが、解決する方法が見つかりませんでした。問題は、独自のルールに従ってテキストを折り返す必要があるカスタム テキスト ビューを持っていることです。静的コンテンツではすべてが正常に機能しますが、ユーザーが別の単語を書き始めたときに @"\n" を挿入すると (ユーザーが入力しようとしている単語はわかっていますが、とにかく収まらないことがわかっています)、iPhone キーボードが自動的に切り替わります。これは、単語を大文字にするつもりがなかったため、ユーザーを怒らせます。これらのラップを機能させることは私にとってミッションクリティカルであるため、別の方法で行を終了する方法、またはキーボードバックでシフトを切り替える方法が必要です。
または、2 つの言葉で: プログラムでキーボードのシフトをオフに切り替えるにはどうすればよいですか?
誰か?
更新みんな、iPhone のキーボードに関する小さな質問です。私の知る限り、(UIKeyboardImpl クラスをフェッチして +sharedInstance を呼び出すことにより) キーボードのオブジェクトを取得し、明らかにその周りでいくつかのことを行うことができます。しかし、Apple はそのようなハッキングを非常に懸念していると聞いたので、このような方法で問題を解決した場合、Apple がアプリを拒否する可能性があるのではないでしょうか? 明らかに、私はケイボードの見方を変えるつもりはありませんし、ロジックでさえも (少なくとも人間の観点からは) 同じままですが、これでお尻を蹴られないで十分でしょうか?
UPDATE 2今のところ、オートキャップをオフにしてシフト状態を手動で設定することで、目的の動作を実現することができました。より良い解決策はありますか?
objective-c - イベントを UITextView に配線する
イベントを UITextView に配線できないようです。
UITextFieldで使用できるイベントのリスト (「Did End On Exit」、「Editing Changed」など) は、すべてUITextViewで使用できるはずです。
しかし、そうではありません。イベント リストの UITextView には何も表示されません。
ここで何が起こっており、UITextView のイベントをトラップするにはどうすればよいですか?
iphone - UITextView の「デリゲート」アウトレットを UITextViewDelegate プロトコルを実装するクラスに接続するにはどうすればよいですか?
UITextView の「デリゲート」アウトレットを UITextViewDelegate プロトコルを実装するクラスに接続するにはどうすればよいですか?
ドキュメントで例が見つからないようです
奇妙なことに、UITextView の「デリゲート」アウトレットには、別のウィジェットに接続できるように、ドラッグ アンド ドロップ インターフェイスがありますが、もちろん、ウィジェットに接続したくありません。接続したいのです。既存のクラスまで。
uitextview - UITextView を指定して UIViewController を取得するにはどうすればよいですか?
UITextViewDelegate でコードを処理しています。そこにある各関数は、イベントを受け取った UITextView インスタンスを受け取ります。次に例を示します。
ただし、そのメソッド内では、textView が与えられた場合にのみ、textView を含む UIViewController にアクセスする必要があります。
(それの複数の段階でさえ)使用しtextView.superview
てもうまくいかないようです-私は得るだけです:
- textView.superview = UIView のインスタンス
- textView.superview.superview = UIViewControllerWrapperView
- textView.superview.superview.superview = UINavigationTransitionView
- textView.superview.superview.superview.superview = UILayoutContainerView
- textView.superview.superview.superview.superview.superview = UIWindow
- textView.superview.superview.superview.superview.superview.superview = nil
次のようなものを出力してクラス名を見つけました
iphone - UIPasteboard 切り貼り選択ボタンが期待どおりに表示されない
すべての UITextView で次の動作が発生します。これまで、この問題に関する投稿は見られませんでした。
- アプリケーションへの最初のエントリは期待どおりに機能します (テキストを貼り付け、選択、切り取り、またはコピーできます)。
- アプリケーションを終了して再入力すると、標準の UIPasteboard ボタンが表示されません。
- これは、アプリ内のすべての UITextView に影響します。カスタム UIPasteboard コードはありません。
スパイグラスと青色のテキスト選択ハンドルは、メニューなしで表示されます。まるで[UIMenuController setMenuVisible:NO]
呼ばれたかのような症状が現れます。これを行うコードはありません。
UITextView に対して一貫してコピー アンド ペーストが機能するようにしたいだけです。
電話を再起動するか、アプリを削除して再構築すると、最初の実行時に正常に動作し、2 回目の実行からこの状態になります。
この動作をトリガーするために、私たちは何をしている可能性がありますか?
iphone - UITextviewのnumberOfLines?
UIlabel には numberOfLines プロパティがあります。私の文字列には2行あると言われています。しかし、 UItextview を使用する場合、UITextview のテキストの長さに基づいて行数を分割したいと考えています。どうすればいいですか?UIlabel は自動的に分割しますが、UITextview は分割しません。