以下のコードは、Swift 4.2:
NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillChange(notification:)), name: NSNotification.Name.UIKeyboardWillShow, object: nil)
「修正」オプションをクリックすると、次のようになります。
NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillChange(notification:)), name: NSNotification.Name.UIResponder.keyboardWillShowNotification, object: nil)
ただし、まだエラーとしてマークされています。説明は次のとおりです。
Type 'NSNotification.Name' has no member 'UIResponder'
そして、私は「UIResponder」を削除しようとしました:
NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillChange(notification:)), name: NSNotification.Name.
...しかし、私はそれをどのように完了する必要があるのかわかりません。
正しい形式は次のとおりです。
UIResponder.keyboardWillShowNotification
...そのため、コードは次のようになります。
NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillChange(notification:)), name: UIResponder.keyboardWillShowNotification)
これはXcode 10の既知の問題です。通知名の修正に関しては、Swift 4.2では自動修正が正しく機能していません。
Swift 4.2、たくさんのNotification.Name
インスタンスは、他のクラスのインスタンス変数になりました。たとえば、keyboardWillShowNotification
はUIResponder
のインスタンス変数になりました。