2012-09-29 9 views
10

UITextFieldには数値(0-9、。、 - )のみが表示されます。ユーザがテキストフィールドの内容を選択すると、「コピー」、「貼り付け」、および「定義」のメニューが表示されます。テキストフィールドは数値のみを表示するので、「定義」オプションは表示したくありません。 UITextFieldで辞書の「定義」オプションを無効にするにはどうすればよいですか?UITextFieldで「定義」を無効にする

編集: 私はこれを解決し

+0

サムシング[ここ](https://developer.apple.com/library/ios/#documentation/UIKit/Reference/UITextInputTraits_Protocol/Reference/UITextInputTraits。 html#// apple_ref/occ/intf/UITextInputTraits)? –

+0

解決策が見つかりませんでした。詳細は? – amirfl

+5

私はこの質問が「本当の質問ではない」という理由を理解していません。とにかく私は解決策を見つけました。サブクラス化されたUITextFieldとoverwrited " - (BOOL)canPerformAction:(SEL)action withSender:(id)sender"。 if(action == @selector(defineSelection :))に 'NO'を返すことで、UIMenuControllerから「define」オプションが削除されました – amirfl

答えて

-2

以下のソリューションは、このお試し掲載しました:あなたはNIBを使用する場合は、「NO」とのUITextFieldの「修正」プロパティを設定し

UITextField* textField = //...; 
textField.autocorrectionType = UITextAutocorrectionTypeNo; 
+1

私は「訂正」プロパティを「いいえ」に設定し、コード内で上記の提案を試しましたが、まだ「定義」メニューオプションがあります。 – amirfl

+0

プロパティを「NO」に設定したコードを共有できますか? – Stunner

+0

これはxibにあります。私もあなたの提案を試み、autocorrectionTypeをコードで直接UITextAutocorrectionTypeNoに設定しました。 i使用: UITextField * unitValue =(UITextField *)[cell viewWithTag:1001]; unitValue。autocorrectionType = UITextAutocorrectionTypeNo; – amirfl

-1

を(デフォルト値はYESです)。

コードを使用する場合は、「autocorrectionType」を「UITextAutocorrectionTypeNO」に設定します。私はオプションをspecifingことにより、編集メニューから「定義」私を削除することができた

action == @selector(defineSelection:)

+1

ここでも、textFieldの内容を選択するときにメニュー内に「定義」が表示されることはありません。 – amirfl

+0

あなたの質問は不明で、あなたがしたいことが間違っていると思います...興味のある単語を長押しして「定義」オプションを表示したくないのですか?ディクショナリでルックアップを実行する定義ですか? – Stunner

+0

それはまさにそれです。ありがとうございました。上記を参照してください。 – amirfl

2

質問コメント領域内の溶液は、(ios8)私のために動作しませんでした、私はエラーを得ましたメニューに含めるしたい:

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender { 
    if (action == @selector(copy:) || 
     action == @selector(selectAll:)) { 
     return true; 
    } 

    return false; 
} 

で、より完全な答え:How to disable copy paste option from UITextField programmatically (サージ-Kお願いします)

5

スウィフト - iOSの8

あなたがするUITextFieldのサブクラス化とcanPerformAction:WithSenderメソッドをオーバーライドすることによってそれを行うことができます。すべてのアクションの

class MyTextFieldWithoutDefine: UITextField { 
    override func canPerformAction(action: Selector, withSender sender: AnyObject?) -> Bool { 
     if action == "_define:" { 
      return false 
     } 

     return super.canPerformAction(action, withSender: sender) 
    } 
} 

一覧:

cut: 
copy: 
select: 
selectAll: 
paste: 
delete: 
_promptForReplace: 
_transliterateChinese: 
_showTextStyleOptions: 
_define: 
_addShortcut: 
_accessibilitySpeak: 
_accessibilitySpeakLanguageSelection: 
_accessibilityPauseSpeaking: 
makeTextWritingDirectionRightToLeft: 
makeTextWritingDirectionLeftToRight: 
+1

利用可能なすべてのアクションを一覧表示することに大きな感謝をします。 Obj-Cを使用してiOS 9.3でテスト済み – Laszlo

+0

よろしくお願いします! :) –

関連する問題