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

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

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

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

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

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

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

Q&A

解決済

1回答

5774閲覧

unrecognized selector sent to instance...のエラーを消せないです

rainyeveryday

総合スコア22

iOS

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

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

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

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

0グッド

0クリップ

投稿2020/04/24 11:47

以下のコードをカスタムクラスに書いて、InterFaceBuilderでtextFieldのCustom Classにそのクラス名(PickerText)を指定してシュミレータを起動しました。決定ボタン(UIBarButtonItem)を押したところ、unrecognized selector sent to instance 0x7fe24e407e10というエラーが出ました。Custom Class名や#selecterを確認しましたが合っている様です。この解決方法をご教授ください。

Swift

1import Foundation 2import UIKit 3 4class PickerText: UITextField { 5 6 var datePicker: UIDatePicker! 7 8 required init?(coder: NSCoder) { 9 super.init(coder: coder) 10 commoninit() 11 } 12 override init(frame: CGRect) { 13 super.init(frame: frame) 14 commoninit() 15 } 16 17 func commoninit(){ 18 19 datePicker = UIDatePicker() 20 datePicker.date = Date() 21 datePicker.datePickerMode = .date 22 datePicker.locale = Locale(identifier: "ja") 23 datePicker.addTarget(self, action: #selector(setText), for: .valueChanged) 24 setText() 25 26 inputView = datePicker 27 inputAccessoryView = createToolbar() 28 29 } 30 31 32 func createToolbar() -> UIToolbar { 33 let toolbar = UIToolbar() 34 toolbar.frame = CGRect(x: 0, y: 0, width: self.frame.width, height: 44) 35 36 let space = UIBarButtonItem(barButtonSystemItem: .fixedSpace, target: self, action: nil) 37 space.width = 12 38 let flexSpaceItem = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: self, action: nil) 39 let todayButtonItem = UIBarButtonItem(title: "今日", style: .done, target: self, action: #selector(todayPicker)) 40 let doneButtonItem = UIBarButtonItem(title: "決定", style: .done, target: self, action: #selector(donePicker)) 41 42 let toolbarItems = [space, flexSpaceItem, todayButtonItem, doneButtonItem] 43 toolbar.setItems(toolbarItems, animated: true) 44 45 return toolbar 46 } 47 48 @objc func todayPicker() { 49 datePicker.date = Date() 50 setText() 51 } 52 53 @objc private func donePicker() { 54 setText() 55 self.endEditing(true) 56 } 57 58 @objc func setText(){ 59 let f = DateFormatter() 60 f.calendar = Calendar(identifier: .japanese) 61 f.dateStyle = .long 62 f.locale = Locale(identifier: "ja") 63 text = f.string(from: datePicker.date) 64 65 } 66 67 68 override func canPerformAction(_ action: Selector, withSender sender: Any?) -> Bool { 69 return false 70 } 71 72 override func selectionRects(for range: UITextRange) -> [UITextSelectionRect] { 73 return [] 74 } 75 76 override func caretRect(for position: UITextPosition) -> CGRect { 77 return CGRect(x: 0, y: 0, width: 0, height:0) 78 } 79 80}

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

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

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

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

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

TsukubaDepot

2020/04/24 12:02

上記のコードをそのまま適当なプロジェクトに貼り付け、TextView のカスタムクラスを変更して実行してみましたが、何のエラーも出ませんでした。 ViewControllerなど、他のクラスに問題があるということはありませんでしょうか。
rainyeveryday

2020/04/24 12:13

申し訳ありません、ViewControllerでtextFieldのオブジェクトを作っていました。
TsukubaDepot

2020/04/24 12:15

早めに気づかれてよかったです。
rainyeveryday

2020/04/24 12:17

TskubaDepotさんの様になれる様精進します。
guest

回答1

0

自己解決

ViewControllerでTextFieldのオブジェクトを作っていました...

投稿2020/04/24 12:13

rainyeveryday

総合スコア22

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問