読者です 読者をやめる 読者になる 読者になる

Swift,Objective-Cプログラミング ~ iOS ~

Objective-C,Swift,Apple Watchなどのプログラミング

【iOS Swift入門 #260】テキストフィールドのカーソルを非表示にしたい。ラベルのように見せつつ、テキストフィールドのメソッドを使いたいからだ

テキストフィールド(TextField)のカーソル(Cursor)を非表示にしたいでしょう?

「2015/10/02」という部分があります。 f:id:fjswkun:20151002154157p:plain

これはUITextFieldのサブクラスで作っています。
タップすると、画面の下から日付ピッカーを表示し、
ユーザーに日付を選択してもらうようにしています。

これはUITextFieldがもつinputViewプロパティに
日付ピッカーをセットすることでできます。

swift-studying.com

困っていたのはテキストフィールドをタップした時に
テキストフィールドにカーソルが表示されてしまうことでした。

f:id:fjswkun:20151002155219p:plain

カーソルを非表示にする方法

UITextFieldのサブクラスを作る必要があります。
UITextFieldクラスがもつ caretRectForPositionメソッド
オーバーライドするのです。

// カーソルを非表示にする
override func caretRectForPosition(position: UITextPosition) -> CGRect {
    return CGRectZero
}

これを使うことでカーソルを非表示にできます。
カーソルと書いてきたが、正しくはキャレット(caret)いうのですね。
メソッド名を見て知りました。

ぜひお試しください。

ちなみにロングタップしたときの「コピー」「貼り付け」を
非表示にしたい場合はこちらを参考に。
swift.swift-studying.com

おわりに


【ROCOCO】[Apple iPhone 6 iPhone6 アップル iPhone6 i-Phone6 iPhone 6s Iphone6s アイフォン6s 共用 Diary Case] IPHONE6 手帳型 ケース IPHONE6 カバー 手帳 IPHONE6 レザーケース IPHONE6 スマホケース IPHONE6 ダイアリーケースIPHONE6S 手帳型ケース IPHONE6S ケース 手帳 アイフォン6s アイフォン 6s 『無料配送』 ★NAVY/YELLOW★


交換保障付き iPhone6/6S (4.7インチ)用 0.3mm 強化ガラスフィルム 硬度9H ラウンドエッジ加工 気泡ゼロ 指紋防止機能 クリア iPhone6S アイフォン6 iPhone6 ガラスフィルム 保護フィルム 保護シート 液晶保護 スマートフォン スマホ 15AC8-1-CLR

参考情報

Swift

iOSアプリ開発未経験の人向け
iOSアプリ開発をはじめたとき最初に買った書籍 【アプリ作成未経験の人向け】
Storyboardを使って画面を作成していく。
手順にしたがって操作していくと、ボタンの作成やWebViewの作成などができる。
アプリって、こんな感じで作るんだというのを体験できる。

Swiftではじめる iPhoneアプリ開発の教科書 【iOS 8&Xcode 6対応】

Swiftではじめる iPhoneアプリ開発の教科書 【iOS 8&Xcode 6対応】


・わかりやすくていい、と聞いた本
立ち読みした感じだと【アプリ作成未経験の人向け】

絶対に挫折しない iPhoneアプリ開発「超」入門【Swift & iOS8.1以降 完全対応】

絶対に挫折しない iPhoneアプリ開発「超」入門【Swift & iOS8.1以降 完全対応】


②を終えたくらいの知識の方向け
・アプリ開発独学中に2冊めに購入した書籍
プログラミング知識はなくても、若干理解するのに時間がかかる程度で、
読み進められるわかりやすさがある。

iPhoneアプリ開発塾

iPhoneアプリ開発塾


③中級者、上級者向け

詳解 Swift

詳解 Swift