質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

2回答

884閲覧

キーアップ、キーダウンを検知する方法

koala2

総合スコア24

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2019/01/30 08:26

編集2019/01/31 00:28

・実現したいこと
バーコードスキャナを用いてバーコドをスキャンしたものをTextField内に表示させたいと考えています。ただしその際にアプリ内キーボードを表示しないようにしたいと考えています。

・私の解決案
フォーカスをテキストフィールドに当てずにバーコードをスキャンしてキーアップ(キーダウン)イベントを用いてキーを取得し、それをコード内で直接テキストを編集しようと考えました。しかし色々探してみましたがキーアップ、キーダウンといったイベントを検知する方法が見つかりませんでした。

キーアップ、キーダウンのイベントの検知方法がありましたら教えていただきです。よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fuzzball

2019/01/31 00:55

質問のコメント欄より >>バーコードを普通にスキャンするとキーボードから直接文字を打ったようにキーの命令がまとまって流れるため とか >>スキャンした瞬間にテキストフィールドに反映されるのですが とか、実際に動作テストしているように見えるのですが、 >>スキャナについては製品はまだ決まっていないのでライブラリも存在するのか不明です というのはどういう意味でしょうか? 「〜まとまって流れる」とか「〜反映される」というのはあなたの妄想でしょうか?
koala2

2019/01/31 02:04

バーコードスキャナは実際にはないのでiOSシミュレーターで物理キーボードを用いてテストをしています。 スキャナに関しては以前別件で使用したスキャナの経験則から話を進めていました。
fuzzball

2019/01/31 02:07

なぜキーボードの話が出てくるのでしょうか?
fuzzball

2019/01/31 02:14

質問のコメント欄より >>バーコードを普通にスキャンするとキーボードから直接文字を打ったようにキーの命令がまとまって流れるため これですかね? 以前使っていたバーコードリーダーがそういう仕様(読み取ったデータをキー入力に変換する)だったということですか?
koala2

2019/01/31 02:26

>> 以前使っていたバーコードリーダーがそういう仕様(読み取ったデータをキー入力に変換する)だったということですか? その通りです、他のバーコードスキャナを仕様に詳しくないものでこのような仕様が一般的なものだと思っていました。
fuzzball

2019/01/31 02:30

私が使ったことのあるリーダーは、普通に文字列を返してくれましたけどね。 リーダーが決まってから悩んだほうがいいと思いますけど。
guest

回答2

0

自己解決

使用するリーダーが決定してから考えることでこの質問は解決とします。

投稿2019/02/06 00:39

koala2

総合スコア24

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

UITextFieldはフォーカスが当たってなくても、プログラムでテキストを変更できますよ。

textField.text = "Hohgehoge"

などと。

https://developer.apple.com/documentation/uikit/uitextfield/1619635-text

そういう事ではないですか?

投稿2019/01/30 08:30

takabosoft

総合スコア8356

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

koala2

2019/01/30 08:42

プログラムでテキストを変更できることは存じております。 バーコードを普通にスキャンするとキーボードから直接文字を打ったようにキーの命令がまとまって流れるため、どこかにバーコードの情報を溜めておく必要があると考えています。そのためtextfield内あるいはキーアップイベントでメモリ内にデータを溜めておきたいと考えています。
takabosoft

2019/01/30 08:48

ちょっと状況がよくわかりませんが、もし1文字ずつ情報が時間差で飛んでくるのでしたら、そのつどtextFieldのtextに足していけばいいのではないでしょうか?
koala2

2019/01/30 08:56

質問したかったのはバーコードをスキャンした際の文字情報を取得する方法でした。単純にテキストフィールドにフォーカスがあるならスキャンした瞬間にテキストフィールドに反映されるのですが、それを行うとアプリ内キーボードが出てしまいます。これを阻止するためにどこにもフォーカスを当てない状態でバーコードをスキャン(画面内に変化はありません)してキーアップなどのイベントで入力されたキーを検知したいと考えています。
takabosoft

2019/01/30 09:37

iPhoneのカメラでバーコードを読み取るタイプではなくて、専用のハードウェアとライブラリを使ってバーコードを読み取ってる感じなんでしょうかね?iOSはiOSで良いんですよね?(iOSのタグ入れてもらった方が良さげです)
takabosoft

2019/01/30 09:52

もしそうでしたら、可能であれば製品やライブラリまで記載してもらった方が回答を得られやすくなる気がします。
koala2

2019/01/31 00:35

>専用ハードウェアを使って読み取る その通りです。言葉足らずでした申し訳ありません。スキャナについては製品はまだ決まっていないのでライブラリも存在するのか不明です。直感的にバーコードをスキャンした場合、スキャン文字列+サフィックス設定でEnterキーを付与できると考えています。 タグにiOSを追加させていただきました。ご指摘ありがとうございます。
takabosoft

2019/02/01 01:09

fuzzballさんとの会話の情報も含めると結論としては、「テキストフィールドが無くても(≒キーボードがでなくても)スキャン可能な製品を選定する」で良いと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問