Objective-C Runtime: имя метода Swizzled?

В попытке определить обратное пространство в UITextField , я попытался создать подкласс UITextField и переопределить ] - [UIKeyInput deleteBackward] , но никогда не вызывается. Итак, я подозреваю, что UITextField переключает deleteBackward на другое имя метода.

Используя среду выполнения Objective-C , как я могу определить, какое имя метода deleteBackward было изменено? Затем, как я могу изменить реализацию, чтобы UITextField вызывал [self.delegate textField: self shouldChangeCharactersInRange: NSMakeRange (0, 0) replaceString: @ ""] при нажатии клавиши удаления нажимается, когда он пустой.

Также, может ли этот вид метапрограммирования привести к тому, что мое приложение будет отклонено из App Store?

6
задан Community 23 May 2017 в 12:34
поделиться