2016-08-22 78 views
2

我在故事板中添加了一個文本字段並將其與頭文件鏈接起來。應用程序在ios中觸摸UITextField時墜毀

現在,當我運行該應用程序我得到這樣

[InputViewController _keyboard]: unrecognized selector sent to instance 

我試過很多東西,但它沒有工作的錯誤。

這裏是文本字段

@property (strong, nonatomic) IBOutlet UITextField *countryCode; 

這個接口是使用

NSString *body = [NSString stringWithFormat:@"country=%@", self.countryCode.text]; 

我該如何解決這個文本字段的值行?

文本字段的連接可以看到下面:

enter image description here

+0

你確定你沒有使用自定義輸入視圖/自定義鍵盤可能是假的? –

+0

是的,我確信@Aviel Gross – KAR

+0

嘗試刪除UITextField並將其重新添加...可能出了點問題 – ddb

回答

4

問題是與您的姓名:

@property (strong, nonatomic) InputViewController *inputViewController; 

蘋果已經添加了類似名稱的屬性在UIResponder類:

@property (nonatomic, readonly, retain) UIInputViewController *inputViewController NS_AVAILABLE_IOS(8_0); 

這是發生了什麼:

  1. 用戶水龍頭你的TextField。
  2. 由於類似命名的屬性,UIKit框架會將您的自定義InputViewController錯誤爲UIInputViewController類型的實例。
  3. UIKit嘗試在您的InputViewController的實例上調用keyboard方法UIInputViewController
  4. keyboard方法在您的InputViewController上不存在,因爲它不是UIInputViewController的實例。
  5. 您會收到無法識別的選擇器發送到您的ViewController的錯誤,因爲您的ViewController中沒有此類方法,並且應用程序正確地崩潰。

更改該屬性的名稱,你應該沒問題。

欲瞭解更多詳情,請參閱Brian Nickel的回答here

另請參閱Apple的文檔UIInputViewController

+0

很高興知道:))...... – dreamBegin

+0

謝謝。你是對的@NSNoob – KAR

0

通過查看錯誤是告訴你,你發送一個信息,它是不是在這所定義的類就是爲什麼編譯器告訴你,你發送的信息沒有被課程認可。檢查你創建的對象和出口,並確保你發送正確的信息到正確的課程或實例,並嘗試刪除出口你之前創建的那個現在不存在。

+0

沒有問題是與名稱'inputViewController'這會導致與UIKit – NSNoob

+0

問題也許你是對的@NSNoob它只是一個預測,我做了實際問題只能在代碼可用時找到。 – dreamBegin

+0

謝謝。問題出在@ NSNoob – KAR