2014-12-03 15 views
7

UIKeyboardType'ı UITextFields'ımda UIKeyboardTypeNumberPad olarak ayarlıyorum. Ancak, bu sadece kullanıcının pozitif tamsayılar girmesine izin verir. Negatif veya pozitif tamsayıları girebilmek için kullanıcıya ihtiyacım var. UIKeyboardTypeNumberPad ile aynı olan, ancak "-" (eksi) sembolünü içeren bir UIKeyboardType var mı, yoksa bunu oluşturamamın bir yolu var mı?Numara pedi gibi görünen ancak negatif sayılara izin veren bir UITextField klavye tipi var mı?

Teşekkürler.

+0

, özel klavye – Sport

+0

Diğer seçeneği oluşturmak bir ekleme - Bir bir inputAccessoryView olarak eksi Düğmesi(). Veya mutlu olun: UIKeyboardTypeNumbersAndPunctuation –

+0

@OnikIV Bir inputAccessoryView olarak eksi düğmesi nasıl eklenir? – AndyW

cevap

7

Olduğu gibi sinir bozucu, böyle bir sistem klavyesi mevcut değildir. Özel bir klavye oluşturmaktan başka, en iyi bahsiniz UIKeyboardTypeNumbersAndPunctuation ve geçerli sayısal girişi zorlamak için doğrulama yapıyor.

+1

UIKeyboardTypeDecimalPad bir eksi düğmesine sahip görünmüyor. Düzenlilik için sadece gerekli olan anahtarlar olmasını isterdim, bu yüzden özel bir tane oluşturmaya bakmak zorunda kalacaklar. – AndyW

+0

Üzgünüz, aslında UIKeyboardTypeNumbersAndPunctuation demek istedim, ancak yanlış olanı kopyaladım/yapıştırdım. Cevabı düzenledim. – Clafou

+0

Bu durumda, şu anda yaptığım şey aslında, ama tüm noktalama işaretleri ile biraz çöp görünüyor ve hatta bu klavyede alfabeye geçiş yapabilirsiniz. – AndyW

2

Bir eksi olarak ekleme ekleyinGörüntüleme, metninizin bir Özellik olarak olması gerekir, bu örnekte bu özellik: myTextField;

Bu kodu myTextField oluşturduktan sonra eklemeniz gerekir, b.e.

 UIView *inputAccesoryView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, 40)]; 
// It´s good idea a view under the button in order to change the color...more custom option 
inputAccesoryView.backgroundColor = [UIColor whiteColor]; 

UIButton *minusButton = [[UIButton alloc] initWithFrame:CGRectMake(([UIScreen mainScreen].bounds.size.width-150)/2, 5, 150, 30)]; 
// configure the button here... you choose. 
[minusButton setTitle:@"-" forState:UIControlStateNormal]; 
[minusButton addTarget:self action:@selector(changeNumberSing) forControlEvents:UIControlEventTouchUpInside]; 
[inputAccesoryView addSubview:minusButton]; 

self.myTextField.inputAccessoryView = inputAccesoryView; 

Ve ViewController bu düğmeye yöntemleri eklemek: viewDidLoad

-(void)changeNumberSing 
{ 
if ([self.myTextField.text hasPrefix:@"-"]) 
{ 
    self.myTextField.text = [self.myTextField.text substringFromIndex:1]; 
}else 
{ 
    self.myTextField.text = [NSString stringWithFormat:@"-%@",self.myTextField.text]; 
} 
} 
+0

Bu çalışır! Sadece metni görmek için siyah olmak için düğme başlık rengini ayarlamak zorunda kaldı. Bu, klavyenin üstünde olsa da, klavyenin sol alt kutucuğuna sahip olmak mümkün mü (bu klavye türü için boş alan)? – AndyW

+0

Hayır. Klavyenin üstüne çizebilirsiniz. (düğmenin 'y' harfini değiştirin ve düğme klavyenin üstündedir). Ancak herhangi bir etkinlik almaz. –

+0

Bu sinir bozucu. Yardımınız için teşekkürler! – AndyW

İlgili konular