UITextField
数値 (0-9、.、-) のみを表示する があります。ユーザーがテキスト フィールドの内容を選択すると、「コピー」、「貼り付け」、および「定義」のメニューが表示されます。テキストフィールドには数値しか表示されないため、「定義」オプションを表示したくありません。で辞書の「定義」オプションを無効にするにはどうすればよいUITextField
ですか?
編集:これを解決し、以下に解決策を投稿しました
UITextField
数値 (0-9、.、-) のみを表示する があります。ユーザーがテキスト フィールドの内容を選択すると、「コピー」、「貼り付け」、および「定義」のメニューが表示されます。テキストフィールドには数値しか表示されないため、「定義」オプションを表示したくありません。で辞書の「定義」オプションを無効にするにはどうすればよいUITextField
ですか?
編集:これを解決し、以下に解決策を投稿しました
スイフト - 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:
NIB を使用する場合は、UITextField の「Correction」プロパティを「NO」に設定します (デフォルト値は YES)。
コードを使用する場合は、「autocorrectionType」を「UITextAutocorrectionTypeNO」に設定します。
これを試して:
UITextField* textField = //...;
textField.autocorrectionType = UITextAutocorrectionTypeNo;