62

テキスト ビューに数値を入力するためにアプリにテンキーを配置しましたが、数値を入力するにはテキスト ビューをクリックする必要があります。そうすると、通常のキーボードが表示されますが、これは望ましくありません。

キーボードを完全に無効にするにはどうすればよいですか? どんな助けでも大歓迎です。

4

10 に答える 10

106

UITextField の inputView プロパティはデフォルトで nil です。これは、標準キーボードが表示されることを意味します。

カスタム入力ビューまたは単なるダミー ビューを割り当てると、キーボードは表示されませんが、点滅するカーソルは引き続き表示されます。

UIView* dummyView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 1, 1)];    
myTextField.inputView = dummyView; // Hide keyboard, but show blinking cursor

キーボードと点滅カーソルの両方を非表示にする場合は、次の方法を使用します。

-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
    return NO;  // Hide both keyboard and blinking cursor.
}
于 2011-12-02T01:07:46.887 に答える
5

UITextFieldの場合は、そのenabledプロパティをNOに設定できます。

UITextViewの場合は-textViewShouldBeginEditing:、デリゲートに実装してNOを返すことができるため、編集が開始されることはありません。または、サブクラス化してオーバーライド-canBecomeFirstResponderし、NOを返すこともできます。または、その編集動作を利用して、テキストビューとして使用するビューに数値ボタンを配置することもできますinputView。これにより、テキストビューの編集時にボタンが表示されるはずです。それはあなたが望むものかもしれないし、そうでないかもしれません。

于 2011-04-11T01:14:49.903 に答える
4

既存のボタンがどのように機能しているかによっては、ボタンが壊れることがありますが、キーボードが表示されないようにして、textViewの編集可能なプロパティをNOに設定することができます。

myTextView.editable = NO
于 2011-04-11T01:19:00.093 に答える
2

同じビューに2つのテキストフィールドがある場合、同じ問題があります。私の目的は、1 つのテキストフィールドにデフォルトのキーボードを表示し、2 番目に非表示にして、代わりにドロップダウン リストを表示することでした。

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField 

メソッドは、2つのテキストフィールドで期待どおりに機能しませんでした.私が見つけた唯一の回避策は

    UIView* dummyView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 1, 1)];    
    myTextField.inputView = dummyView; 
    myTextField.inputAccessoryView = dummyView; 
    myTextField.tintColor =  myTextField.backgroundColor; //to hide a blinking cursor

これにより、ターゲットのテキスト フィールド (私の場合はDropDownList ) のキーボードが完全に非表示になり、ユーザーが 2 番目のテキスト フィールド (スクリーンショットのアカウント番号) に切り替えると、デフォルトのキーボードが表示されます。

ここに画像の説明を入力

于 2016-07-25T17:53:54.323 に答える
0

UITextField キーボードを無効にするには:

  1. Main.Storyboardに移動
  2. UITextFieldをクリックして選択します
  3. 属性インスペクターを表示する
  4. ユーザーインタラクション有効のチェックを外す

UITextView キーボードを無効にするには:

  1. Main.Storyboardに移動
  2. UITextViewをクリックして選択します
  3. 属性インスペクターを表示する
  4. 編集可能な動作のチェックを外します
于 2016-07-14T20:35:45.173 に答える
-3

Xcode 8.2では、状態の「有効」オプションのチェックを外すことで簡単に実行できます。

  1. 編集不可にしたいテキストフィールドをクリックします
  2. 右側のattirubeインスペクターに移動します
  3. 状態の「有効」のチェックを外します

ここに画像の説明を入力

または、コードで実行したい場合。このテキスト フィールドの @IBOutlet を作成し、名前を付けてから、この変数名を viewDidLoad 関数 (または、意図する場合は任意のカスタム関数) で次のように使用できます (Swift 3.0.1 の場合):

override func viewDidLoad() {
    super.viewDidLoad()

    // Do any additional setup after loading the view.

    myTextField.isEditable = false
}
于 2016-12-22T23:17:24.037 に答える