Выдаліць кропку з UITextField

I create on application and i required to enter price. client required its own design keyboard so i develop following keyboard. it works perfect . Problem is when the text is larger then UITextField's with then it display dots. I search on Google and SO but not found any thing.
how to avoid dots next to a uitextfield
How to remove dots in UITextfield? and other answer but not working in my case. When I used default keyboard it scroll the text what i input number

Мой ключ дошка

enter image description here

калі даўжыня больш, то TextFied Шырыня затым адлюстраваць

enter image description here

мой код

     - (IBAction)numberPressed:(id)sender {
         UIButton *btn=(UIButton *)sender;
         int number=btn.tag;

         if (number <= 9)
             txtPrice.text = [NSString stringWithFormat:@"%@%d",txtPrice.text, number];
         //decimal point
         else if (number == 10) {
             if ([txtPrice.text rangeOfString:@"."].location == NSNotFound)
                 txtPrice.text = [NSString stringWithFormat:@"%@.", txtPrice.text];
          }
         //0
         else if (number == 11)
             txtPrice.text = [NSString stringWithFormat:@"%@0", txtPrice.text];
         //backspace
         else if (number == 12) {
             if ([txtPrice.text length] > 0)
                 txtPrice.text = [txtPrice.text substringToIndex:[txtPrice.text length] - 1];
             else
                 txtPrice.text = @"";
         }
     }


   #pragma mark -
   #pragma mark -TextField Delegate Method

   -(BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
       [self showKeyboard];
       return NO; //Hide both keyboard and blinking cursor.
   }

   - (BOOL)textFieldShouldEndEditing:(UITextField *)textField
   {
       return YES;
   }
1
@kushyar Дзякуй за паўтор, я хачу, каб выдаліць пункту, проста адлюстроўваць нумар.
дададзена аўтар SAMIR RATHOD, крыніца
@kushyar Дзякуй за паўтор, я хачу, каб выдаліць пункту, проста адлюстроўваць нумар.
дададзена аўтар SAMIR RATHOD, крыніца
@PartiallyFinite Дзякуй за паўтор, я выкарыстаў UITextField
дададзена аўтар SAMIR RATHOD, крыніца
@PartiallyFinite Дзякуй за паўтор, я выкарыстаў UITextField
дададзена аўтар SAMIR RATHOD, крыніца
Карыстаецеся Ці вы UITextField або UILabel ? А UILabel аўтаматычна абразае яго змесціва, калі яны занадта доўга.
дададзена аўтар Greg, крыніца
Карыстаецеся Ці вы UITextField або UILabel ? А UILabel аўтаматычна абразае яго змесціва, калі яны занадта доўга.
дададзена аўтар Greg, крыніца
Ваш скрыншот ўсечанага тэкст выглядае як ярлык для мяне, а не тэкставае поле. Вось чаму я спытаў.
дададзена аўтар Greg, крыніца
Ваш скрыншот ўсечанага тэкст выглядае як ярлык для мяне, а не тэкставае поле. Вось чаму я спытаў.
дададзена аўтар Greg, крыніца
Што вы хочаце, каб адлюстраваць?
дададзена аўтар kushyar, крыніца
Што вы хочаце, каб адлюстраваць?
дададзена аўтар kushyar, крыніца
@SAMIRRATHOD бачыць маё рэдагаванне
дададзена аўтар kushyar, крыніца
@SAMIRRATHOD бачыць маё рэдагаванне
дададзена аўтар kushyar, крыніца

10 адказы

Што вы можаце зрабіць

  txtPrice.text = [txtPrice.text stringByReplacingOccurrencesOfString:@"." withString:@""];

дайце мне ведаць, што яна працуе ці няма !!!

З Днём Coding !!!

4
дададзена
Гэта не будзе працаваць, як ён атрымлівае слова загорнуты. Таму, калі даўжыня дасягае пэўную даўжыню, вы атрымаеце «3534 ...», але калі вы робіце txtPrice.text гэта дасць поўны тэкст. -1 за няправільны адказ.
дададзена аўтар Popeye, крыніца
Не, гэта не так. Скажам, у вас ёсць нумар «123456789» і ў UITextField ён паказвае, як «1234567 ..» шматкроп'е з'яўляюцца, таму што тэкст досыць доўгі для UITextField , так што становіцца слова загорнуты або сімвал ахінуўшы, але калі б я зрабіў [MyTextField тэкст] ён будзе вяртаць «123456789». Таму, калі вы робіце [txtPrice.text stringByReplacingOccurrencesOfString: @ "" withString: @ «»]; не збіраецца нічога рабіць, як ён не ведае аб «...». Гэта як раз тое, што карыстальнік будзе бачыць у тэкставым полі, таму што гэтае слова загорнуты. Так што ваш адказ няслушны.
дададзена аўтар Popeye, крыніца
Каб выдаліць іх, вы павінны быць налады lineBreakMode аб'екта, які UITextField не мае, так што вы не можаце. Адзіны спосаб, якім ён набліжаецца да магчымасці зрабіць гэта, выкарыстоўваючы adjustsFontSizeToFitWidth і ўстаноўка minimumFontSize да нечага, што не дурны памер шрыфта. Я таксама думаю, што вы не зразумелі пытанне, карыстальнік не ўвёў пункту гэта адбылося з-за пераносу слоў, а калі справа даходзіць да слова абгортваць ваш адказ зусім няправільна. Так шкада, няма, вы не правы, як у пытанні.
дададзена аўтар Popeye, крыніца
можа хто-небудзь сказаць мне, чаму гэта не так ??
дададзена аўтар NiravPatel, крыніца
Вы маеце рацыю, што 8 і 9 будуць абрэзаны, але пытанне ў тым, каб проста выдаліць кропкі, каб на пытанне мой адказ правільны, то зараз, калі слова абгорнутыя то распрацоўшчык можа зрабіць што-то.
дададзена аўтар NiravPatel, крыніца
ўвесь парадак дня, каб выдаліць кропкі, і мой код толькі выдаленне кропак, а не колькасці, так што я думаю, што гэта правільна ...
дададзена аўтар NiravPatel, крыніца
@Popeye гэта правільна. Не ведаю, чаму я да гэтага часу downvoted.
дададзена аўтар kushyar, крыніца

Што вы можаце зрабіць

  txtPrice.text = [txtPrice.text stringByReplacingOccurrencesOfString:@"." withString:@""];

дайце мне ведаць, што яна працуе ці няма !!!

З Днём Coding !!!

4
дададзена
Каб выдаліць іх, вы павінны быць налады lineBreakMode аб'екта, які UITextField не мае, так што вы не можаце. Адзіны спосаб, якім ён набліжаецца да магчымасці зрабіць гэта, выкарыстоўваючы adjustsFontSizeToFitWidth і ўстаноўка minimumFontSize да нечага, што не дурны памер шрыфта. Я таксама думаю, што вы не зразумелі пытанне, карыстальнік не ўвёў пункту гэта адбылося з-за пераносу слоў, а калі справа даходзіць да слова абгортваць ваш адказ зусім няправільна. Так шкада, няма, вы не правы, як у пытанні.
дададзена аўтар Popeye, крыніца
Гэта не будзе працаваць, як ён атрымлівае слова загорнуты. Таму, калі даўжыня дасягае пэўную даўжыню, вы атрымаеце «3534 ...», але калі вы робіце txtPrice.text гэта дасць поўны тэкст. -1 за няправільны адказ.
дададзена аўтар Popeye, крыніца
Не, гэта не так. Скажам, у вас ёсць нумар «123456789» і ў UITextField ён паказвае, як «1234567 ..» шматкроп'е з'яўляюцца, таму што тэкст досыць доўгі для UITextField , так што становіцца слова загорнуты або сімвал ахінуўшы, але калі б я зрабіў [MyTextField тэкст] ён будзе вяртаць «123456789». Таму, калі вы робіце [txtPrice.text stringByReplacingOccurrencesOfString: @ "" withString: @ «»]; не збіраецца нічога рабіць, як ён не ведае аб «...». Гэта як раз тое, што карыстальнік будзе бачыць у тэкставым полі, таму што гэтае слова загорнуты. Так што ваш адказ няслушны.
дададзена аўтар Popeye, крыніца
можа хто-небудзь сказаць мне, чаму гэта не так ??
дададзена аўтар NiravPatel, крыніца
Вы маеце рацыю, што 8 і 9 будуць абрэзаны, але пытанне ў тым, каб проста выдаліць кропкі, каб на пытанне мой адказ правільны, то зараз, калі слова абгорнутыя то распрацоўшчык можа зрабіць што-то.
дададзена аўтар NiravPatel, крыніца
ўвесь парадак дня, каб выдаліць кропкі, і мой код толькі выдаленне кропак, а не колькасці, так што я думаю, што гэта правільна ...
дададзена аўтар NiravPatel, крыніца
@Popeye гэта правільна. Не ведаю, чаму я да гэтага часу downvoted.
дададзена аўтар kushyar, крыніца

UITextField is specifically one-line only. So whatever the UITextField is big when it reach the end it will display dots.

Вы павінны выкарыстоўваць UITextView замест UITextField для адлюстравання і рэдагавання кода <> шматрадковы тэкст.

У Interface Builder дадаць UITextView , дзе вы хочаце яго, і выберыце «рэдагуемага» акно. Гэта будзе шматрадковы па змаўчанні.

Я думаю, што гэта дапаможа. ^ _ ^

1
дададзена
@MKAlatrash Я б не сказаў, што гэта адзіны шлях, але я б, верагодна, зрабіць гэта такім чынам сябе і мець справу з некалькімі лініямі, але калі карыстальнік сапраўды хоча прытрымлівацца UITextField , то яны будуць мець пайсці на kushyar адказ, але рана ўсе позна яны будуць знаходзіцца ў тым жа становішчы, што і будзе адпавядаць minimumFontSize зноў.
дададзена аўтар Popeye, крыніца
Не, ён не адлюстроўвае кропку. але пракручваць характар ​​....
дададзена аўтар SAMIR RATHOD, крыніца
добра, што гэта адзіны спосаб пазбегнуць адлюстравання кропак. Выкарыстоўвайце UITextView, якія падтрымліваюць мульты-лініі. Поспехаў!!
дададзена аўтар M.Alatrash, крыніца
найлепшыя пажаданні ^ _ ^
дададзена аўтар M.Alatrash, крыніца

UITextField is specifically one-line only. So whatever the UITextField is big when it reach the end it will display dots.

Вы павінны выкарыстоўваць UITextView замест UITextField для адлюстравання і рэдагавання кода <> шматрадковы тэкст.

У Interface Builder дадаць UITextView , дзе вы хочаце яго, і выберыце «рэдагуемага» акно. Гэта будзе шматрадковы па змаўчанні.

Я думаю, што гэта дапаможа. ^ _ ^

1
дададзена
@MKAlatrash Я б не сказаў, што гэта адзіны шлях, але я б, верагодна, зрабіць гэта такім чынам сябе і мець справу з некалькімі лініямі, але калі карыстальнік сапраўды хоча прытрымлівацца UITextField , то яны будуць мець пайсці на kushyar адказ, але рана ўсе позна яны будуць знаходзіцца ў тым жа становішчы, што і будзе адпавядаць minimumFontSize зноў.
дададзена аўтар Popeye, крыніца
Не, ён не адлюстроўвае кропку. але пракручваць характар ​​....
дададзена аўтар SAMIR RATHOD, крыніца
добра, што гэта адзіны спосаб пазбегнуць адлюстравання кропак. Выкарыстоўвайце UITextView, якія падтрымліваюць мульты-лініі. Поспехаў!!
дададзена аўтар M.Alatrash, крыніца
найлепшыя пажаданні ^ _ ^
дададзена аўтар M.Alatrash, крыніца

Вы можаце паспрабаваць гэта:

self.txtPrice.font = [UIFont systemFontOfSize: 14.0];
self.txtPrice.adjustsFontSizeToFitWidth = YES;
self.txtPrice.minimumFontSize = 7.0;

«AdjustsFontSizeToFitWidth» з'яўляецца лагічным значэннем, якія паказваюць, ці варта памер шрыфта быць паменшаны, каб адпавядаць радку тэксту ў прастакутнік тэкставага поля.

«MinimumFontSize» з'яўляецца памер найменшага дапушчальнага шрыфта, з якім намаляваць тэкст тэкставага поля.

1
дададзена

Вы можаце паспрабаваць гэта:

self.txtPrice.font = [UIFont systemFontOfSize: 14.0];
self.txtPrice.adjustsFontSizeToFitWidth = YES;
self.txtPrice.minimumFontSize = 7.0;

«AdjustsFontSizeToFitWidth» з'яўляецца лагічным значэннем, якія паказваюць, ці варта памер шрыфта быць паменшаны, каб адпавядаць радку тэксту ў прастакутнік тэкставага поля.

«MinimumFontSize» з'яўляецца памер найменшага дапушчальнага шрыфта, з якім намаляваць тэкст тэкставага поля.

1
дададзена

Іншы падыход (Выдаліць кропку і кліп тэкст у кадр) -

Ваша можа выдаліць кропку з UITextField выкліку наступнага кода

[Self.yourTextField becomeFirstResponder];

Вы таксама можаце схаваць клавіятуру па змаўчанні [калі вы карыстаецеся якой-небудзь карыстацкай клавіятуры], выкарыстоўваючы наступны код

// паказваць клавіятуру для набору нумара Pad, але паказвае перарывісты курсор UIView * dummyKeyboardView = [[UIView Alloc] initWithFrame: CGRectMake (0, 0, 1, 1)]; yourTextField.inputView = dummyKeyboardView; [DummyKeyboardView рэліз];

Але я думаю, што адказ IlNero з'яўляецца лепш для вас, калі вы хочаце, каб паказаць увесь тэкст (не кліп).

0
дададзена

Іншы падыход (Выдаліць кропку і кліп тэкст у кадр) -

Ваша можа выдаліць кропку з UITextField выкліку наступнага кода

[Self.yourTextField becomeFirstResponder];

Вы таксама можаце схаваць клавіятуру па змаўчанні [калі вы карыстаецеся якой-небудзь карыстацкай клавіятуры], выкарыстоўваючы наступны код

// паказваць клавіятуру для набору нумара Pad, але паказвае перарывісты курсор UIView * dummyKeyboardView = [[UIView Alloc] initWithFrame: CGRectMake (0, 0, 1, 1)]; yourTextField.inputView = dummyKeyboardView; [DummyKeyboardView рэліз];

Але я думаю, што адказ IlNero з'яўляецца лепш для вас, калі вы хочаце, каб паказаць увесь тэкст (не кліп).

0
дададзена

Калі вы хочаце, падобныя паводзіны, як калькулятар або дадатак тэлефона вы павінны ўсталяваць наступнае ўласцівасць праўдзіва (YES):

textField.adjustsFontSizeToFitWidth = YES;

Вы таксама павінны ўсталяваць minimumFontSize ўласцівасць «каб прадухіліць прыёмнік ад памяншэння памеру шрыфта да кропкі, дзе яна больш не чыталіся.»

Check out the UITextField Reference

0
дададзена
Я магу зразумець downvote для lineBreakMode , які UITextFields ня мець, але вы выправілі, таму я upvote гэта для карэкцыі.
дададзена аўтар Popeye, крыніца
Я выкарыстаў UITextField ня UILabel
дададзена аўтар SAMIR RATHOD, крыніца
textField.adjustsFontSizeToFitWidth = ДА; не працуе
дададзена аўтар SAMIR RATHOD, крыніца
lineBreakMode не працуе для UITextField
дададзена аўтар NiravPatel, крыніца
@NiravPatel дзякуй, усталяваў яе.
дададзена аўтар kushyar, крыніца
@SAMIRRATHOD любой поспехі?
дададзена аўтар kushyar, крыніца
@Popeye дзякуй!
дададзена аўтар kushyar, крыніца

Калі вы хочаце, падобныя паводзіны, як калькулятар або дадатак тэлефона вы павінны ўсталяваць наступнае ўласцівасць праўдзіва (YES):

textField.adjustsFontSizeToFitWidth = YES;

Вы таксама павінны ўсталяваць minimumFontSize ўласцівасць «каб прадухіліць прыёмнік ад памяншэння памеру шрыфта да кропкі, дзе яна больш не чыталіся.»

Check out the UITextField Reference

0
дададзена
Я магу зразумець downvote для lineBreakMode , які UITextFields ня мець, але вы выправілі, таму я upvote гэта для карэкцыі.
дададзена аўтар Popeye, крыніца
Я выкарыстаў UITextField ня UILabel
дададзена аўтар SAMIR RATHOD, крыніца
textField.adjustsFontSizeToFitWidth = ДА; не працуе
дададзена аўтар SAMIR RATHOD, крыніца
lineBreakMode не працуе для UITextField
дададзена аўтар NiravPatel, крыніца
@NiravPatel дзякуй, усталяваў яе.
дададзена аўтар kushyar, крыніца
@SAMIRRATHOD любой поспехі?
дададзена аўтар kushyar, крыніца
@Popeye дзякуй!
дададзена аўтар kushyar, крыніца