• 締切済み

【iOS】自作コンポーネントを作りたい

iOS6でiPhoneアプリを開発したいと思っています。 storyboardで画面を作り、ちまちまコードを書くんだなというところまでは 理解しています。 しかしながら、共通コンポーネントとなる部品を作る方法がどれだけ 調べても分かりません。 例えば、自動カンマ編集、入力桁数、マイナス値不可、最大値、 最小値を制御するような自作のTextFieldを作成しようと思っても、 入力された値を検証・許可・拒否したりする方法が全く分かりません。 調べたところ、デリゲートで画面上(ViewController)のロジックに書けば 制御できるのでしょうが、画面に依存してしまっては、複数画面に渡って 必要となったとき、毎度毎度同じロジックを書いたり、いちいちデリゲート してあげたりしないとダメというのが釈然としません。 画面に依存しない、動作がTextFieldクラス内で完結されている 自作のTextFieldなどを作成するには、どうすれば良いのでしょうか?

みんなの回答

  • x-1919
  • ベストアンサー率52% (91/173)
回答No.1

iOS の開発はまったく知らないが、「ios カスタムコントロール」 で出てくる情報ではダメってこと?

naktak
質問者

補足

ViewControllerに依存するコードしか見つかっていません。 また、見た目を変えるだけなどしか見つからず、ViewControllerに 依存せず、カーソルを取得した時、入力を受け付けた時などの 記述方法が見当たりません。

関連するQ&A

  • [iPhoneアプリ開発]オブジェクトの制御

    iPhoneアプリ開発初心者です。 わからないところがあるので質問します。 xcodeのstoryboardとかで配置されたUILabelやUIButtonを制御するViewControllerというクラスがありますが、自前のクラスでViewContorollerと同じ(似た)処理をさせることは可能でしょうか。 例えば複数のオブジェクト(UILabelとか)を作成しボタンが押されたらアニメーションさせるクラス(ここではMyClassとします)なんかです。 自分の考えではボタンを制御するのはViewControllerクラスで、それが押されたらMyClassクラスのインスタンスに「アニメーションを実行させよ」というメッセージを送る、といった感じです。 ViewControllerで処理を一括するのもありですが、アニメーションさせたいオブジェクトを実行時にランダムに作りたいので、処理がややこしくなると思い別のクラスにまかせたほうがいいと思いました。 一応objective-cの知識として、「デリゲード」や「カテゴリ」といった言葉を知っていますがどう使えばいいかわかりません。 疑問の丸投げになりますが、いろいろ試してもできなかったので今回ここで質問しようと思いました。 よろしくお願いします。

  • デジタル回路だけでクロックを逓倍するには

    FPGAに20MHzのクロックを入力し、自作するロジックで、より高いクロックを生成したいと考えています。PLL技術などをざっと調べてみたのですが、ロジックだけで作成できるか見当がつきません。FPGA内のロジックだけでクロックを逓倍することはできるのでしょうか?

  • UIImageViewの重なり順序について

    Objective-C、iPhone 開発です。 現在、StoryBoardを使用して、一画面の簡単なプログラムを作成しています。 StoryBoard上で貼付けた、複数画像(UIImaveView)の重なり順序を変更したいのですが どこを操作すれば良いのか分からずにおります、、、 この状態のUIImageView、下記のどちらかで 重なり順序を制御することは可能なのでしょうか? ・Xcode上で重なり順序を再設定する ・プログラム実行時に再設定する ご存知の方おりましたらご教授ください。 (参考URLなどでも結構です) 宜しくお願いします。

  • Xcodeでの画面遷移について

    Xcode5.0でアプリを作成しています。 アプリがバックグラウンドから再びアクティブになるときに画面遷移の処理をするために 以下の方法にてAppDelegateのapplicationDidBecomeActiveからView Controllerに処理を渡しています。 AppDelegate.m - (void)applicationDidBecomeActive:(UIApplication *)application { [[NSNotificationCenter defaultCenter] postNotificationName:@"applicationDidBecomeActive" object:nil]; } ViewController.m { [super viewDidLoad]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationDidBecomeActive) name:@"applicationDidBecomeActive" object:nil]; } - (void)applicationDidBecomeActive { ViewController *View = [self.storyboard instantiateViewControllerWithIdentifier:@"SecondView"]; [self presentModalViewController:View animated:YES]; } ViewController.mの- (void)applicationDidBecomeActiveで画面遷移の処理をしたいのですが、ViewDidAppearでは出来る画面遷移がapplicationDidBecomeActiveでは実行されない状態です。 ググって調べたところ、読み込みのタイミングが問題らしいことはなんとなく解ったのですが、 どうにかして、- (void)applicationDidBecomeActiveと同じタイミング(アプリがアクティブになったとき)で画面遷移を行う方法はありますでしょうか?

  • フォームメール確認画面ありのロジック

    はじめまして。 よろしくお願いします。 Perlの勉強を始めたばかりの初心者です。 自作のCGI(Perl)でフォームメールを作成しようとしています。 1.フォームに必要事項を入力 2.確認画面で確認 3.OKならメール送信 ※自分と フォームから入力してもらったアドレスへ2通 1から2へは フォームからのデータ受取 変換 受け取ったデータを含むHTMLの作成。 でできると思うのですが、 2から3へは皆さんどのようなロジックを使っていらっしゃるんでしょうか? 私は1から2へのHTMLの作成の際に Hiddenでメール送信したい内容を隠し持たせてから、 2の画面でのSubmitの時に隠し持たせた内容をメール送信すれば良いのかな? と思っているのですが、 他にどのような方法があるのか(使ってらっしゃるのか)教えて頂きたいのです。 また、上記の方法に対する良し悪しなどもご指摘頂けますと とても助かります。 足りないところは補足致します。 よろしくお願いします。

    • ベストアンサー
    • Perl
  • word 2007 の「読点」の半角変換について

    word 2007 の「読点」の半角変換について 私が使っているword 2007ですが、作成する文章のバランス上「読点」を半角で入力したい場合があります。以前は環境依存文字ということで半角の読点が表示できていたのですが、いつの間にか変換キーを押しても『 1 、[全]読点 2 ,[全]コンマ 3 ,[半]コンマ 』の3種類しか変換候補が表示されず困っています。どうすれば半角の読点を表示することができるのでしょうか。

  • RedHat 起動スクリプト(自作) 規約の存在?

    現在、業務で、RedHatLinuxで動作するプログラムを作成しております。 /etc/init.d 配下に、自作の起動スクリプトを用意して、 プログラムの {start|stop|restart|status}の制御を実行しようと 考えているのですが、 準拠した方がいい規約など、存在するのでしょうか? 例えば、status を知りたいときに、 root$ service hogehoge status と、入力するのですが、 そのときの、”出力は、こうした方がいい”みたいな 参考文献みたいなものは存在するのでしょうか? もし、ご存知の方がいらっしゃったら、 ご教示いただけるとありがたいです。

  • Web画面でのフォーカスの制御

    <Web画面におけるフォーカスの制御について> VBでよく使うLostFocusのような、データが入力されたあとでの処理をするような機能がWeb画面作成のプログラムでは、あるのでしょうか?

  • PHPによるフォーム入力プログラムの流用性を高めたい

    フォーム入力プログラムを作る時 こんな感じのパターンが多いと思います。 [STEP1] 新規入力させる STEP2で、同意をえれない場合、入力内容を再入力する [STEP2] 必須項目が入力しているかどうかをチェックし、 できていなければ、エラーを表示する。 入力項目一覧を表示、ユーザーにこれでいいか同意を求める。 だめならSTEP1へ戻る よければSTEP3へ進む [STEP3] 入力した内容をデータベースにインサートする。 入力した内容をメールでセンドする。 二重投稿を防止する。 と、フォームのロジックパターンとしては どんなフォームを作成してもある程度決まっているのですが、 再度同じようなフォームを作成する時、 ロジックパターンはある程度決まってても 前回作成したものの流用性はほとんど効かず、 毎度作成に大変時間がかかってしまいます。 具体的には、前回作ったフォームをコピペしたり変更しても 変更する内容が多すぎて 結局、一からフォームを書くのとさほど変わらないということです。 そこでもっと流用性を高める設計方法はないのだろうかと 考えてみたのですが、良い解決方法が見つかりません。 いかなるフォーム形態であろうと、 いかなるデータ数であろうと、 自在にフォームの改変が容易にできる。 そんな設計方法があれば、アドバイスをお願いします。

    • ベストアンサー
    • PHP
  • 指定した日付が、その月の第何週かを求める方法

    月曜から日曜の作業内容を 書く報告書作成画面の作成をしています。 処理の一つに、 作成したい週の月曜の年月日を入力し、 日曜までの日付を自動的に画面に出す、 というものがあります。 さらに自動的に出した日曜日の日付から、 報告書作成週はその月の第何週かを求める、 (今月ですと10/6は第1週、10/13は第2週、 10/20は第3週、10/27は第4週、となります) という処理を作成したいのですが、 良いロジックが思い浮かびません。 (処理する月の日付と曜日を配列に入れて、 ループカウントで第何週かを求める、という 方法は思いついたのですが、効率が悪いと思うので…) 何か良いロジックがありましたら、 書き込みをお願い致します。