Действительно ли возможно изменить UITextInputTraits, в то время как UIKeyboard в поле зрения?

Я хочу изменить UITextInputTraits клавиатуры, в то время как он используется....

Мой идеальный код выглядел бы примерно так:

- (IBAction)nameTextDidChange:(UITextField *)sender {
    if ([sender.text isEqualToString:@""]) {
        sender.returnKeyType = UIReturnKeyDone;
    } else {
        sender.returnKeyType = UIReturnKeySearch;
    }
}

Так... У меня есть другая кнопка 'Return' для пустой строки, поскольку я делаю строку с некоторым текстом в. Код, который я отправил выше, не работает, клавиатура сохраняет, это - входные черты оригинального текста.

Какие-либо идеи кто-либо, или это никогда не собирается работать, неважно, как трудно я пробую?

Удачи!

Nick.

Благодаря Deepak это - код, который я на самом деле использовал:

if ([sender.text isEqualToString:@""]) {
    sender.returnKeyType = UIReturnKeyDone;

    [sender resignFirstResponder];
    [sender becomeFirstResponder];
} else if (sender.returnKeyType == UIReturnKeyDone) {

    NSString *cachedLetter = sender.text;

    sender.returnKeyType = UIReturnKeySearch;

    [sender resignFirstResponder];
    [sender becomeFirstResponder];

    sender.text = cachedLetter;
}
6
задан Nick Cartwright 29 January 2010 в 09:40
поделиться

1 ответ

Я думаю, что одна концепция, связанная как со статистикой, так и с профилированием (ваш первоначальный вопрос), которая очень полезна и используется некоторыми (вы видите методику, которую советуют время от времени), заключается в том, чтобы делать «микропрофилирование»: многие программисты сплотятся и кричат «вы не можете микропрофилировать, микропрофилирование просто не работает, слишком много вещей может повлиять на ваши вычисления»

Но просто выполните n раз вашего профилирования, и сохраните только x % ваших наблюдений, те, которые вокруг медианы, потому что медиана является «надежной статистикой» (в отличие от среднего), на которую не влияют отклонения (отклонения являются именно тем значением, которое вы хотите не принимать во внимание при выполнении такого профилирования).

Это, безусловно, очень полезный метод статистики для программистов, которые хотят микропрофилировать свой код.

-121--4244691-

задокументированный способ добавления элементов управления к JFileChooser осуществляется с помощью метода setAccessory (JComponent) .

JTextField field = new JTextField("Hello, World");
JPanel accessory = new JPanel();
accessory.setLayout(new FlowLayout());
accessory.add(field);

JFileChooser chooser = new JFileChooser();
chooser.setAccessory(accessory);
int ret = chooser.showOpenDialog(frame);

Однако это приведет к расположению нового элемента управления справа от диалогового окна (точное позиционирование, вероятно, зависит от языка).

Чтобы расположить компонент в нужном положении, вероятно, придется провести график компонента и манипулировать им. Это был бы очень хрупкий подход, и вам может быть лучше просто построить свой диалог.

Это может включать в себя средство выбора файлов:

JFileChooser chooser = new JFileChooser();
chooser.addActionListener(new ActionListener() {
  @Override
  public void actionPerformed(ActionEvent e) {
    // TODO - wire into something
    System.out.println(e);
  }
});

JTextField field = new JTextField("Hello, World");

JPanel panel = new JPanel();
panel.setLayout(new BorderLayout());
panel.add(chooser, BorderLayout.CENTER);
panel.add(field, BorderLayout.SOUTH);
-121--4378786-

Вы можете сделать это, добавив следующие строки в конце метода.

if ([textField.text isEqualToString:@""]) {
    textField.returnKeyType = UIReturnKeyDone;

    [textField resignFirstResponder];
    [textField becomeFirstResponder];
} else if (textField.returnKeyType == UIReturnKeyDone) {
    textField.returnKeyType = UIReturnKeySearch;

    [textField resignFirstResponder];
    [textField becomeFirstResponder];
}

Это должно сработать.

Вы, в основном, включаете и выключаете его так, что ввод текста изменяется. Во-вторых, чтобы убедиться, что вы перевернетесь только при необходимости.

5
ответ дан 10 December 2019 в 02:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: