resignFirstResponder не скрывает клавиатуру на textFieldShouldReturn

Ну, папка bin существует, но она перемещается в папку артефактов рядом с файлом решения. Поскольку ASP.NET Core RC 1 компилирует все в памяти, вы найдете пустую папку bin. Но если вы установите для параметра «Производить вывод на сборке» значение true (щелкните правой кнопкой мыши файл проекта -> вкладка «Свойства и сборка»), то вы найдете сгенерированные файлы в папке bin.

Я так не думаю есть любое прямое свойство, доступное для того, чтобы получить путь к этому, но вы можете использовать то же решение, на которое указывает @Nikolay Kostov, чтобы получить путь к приложению. И затем, используя классы System.IO, перейдите в папку bin.

Обновлен код для ядра ASP.NET, как указано здесь.

http://www.talkingdotnet.com / get-application-wwwroot-path-aspnet-core-rc2 /

public Startup(IHostingEnvironment env, IApplicationEnvironment appenv)
{
     string sAppPath = env.ContentRootPath;
     string sRootPath = Path.GetFullPath(Path.Combine(sAppPath, @"..\..\"));
     string sBinFolderPath = @"artifacts\bin\" + appenv.ApplicationName;
     string sBinPath = Path.Combine(sRootPath, sBinFolderPath);
}

29
задан Moshe 31 January 2011 в 02:40
поделиться

14 ответов

Я вижу, у вас есть тег iPad. Вы случайно представляете модальное представление с использованием UIModalPresentationFormSheet? Если это так, то это выглядит как ограничение модальной презентации FormSheet (либо Apple по какой-то причине делает это намеренно, либо это ошибка). См. Эти другие вопросы для получения дополнительной информации:

Модальное диалоговое окно не закрывает клавиатуру

Контроллер модального вида с клавиатурой на альбомной ориентации iPad меняет местоположение при отклонении

49
ответ дан Community 31 January 2011 в 02:40
поделиться

Самый простой способ:

  1. Зайдите в свой конструктор пользовательских интерфейсов,

  2. выберите UITextField и «Control-Drag» для «Деталь View Controller-Detail» и выпуск.

  3. Откроется окно. Затем в разделе «Розетки» выберите «Делегат».

Вот и все. Это сработало для меня.

0
ответ дан atxe 31 January 2011 в 02:40
поделиться

Swift 3.0

func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {

    if textField == addressTextField {
        textField.resignFirstResponder()

        return false
    }

    return true
}
0
ответ дан krish 31 January 2011 в 02:40
поделиться

если вы находитесь в UIModalPresentationFormSheet, просто позвоните

- (BOOL)disablesAutomaticKeyboardDismissal
{
    return NO;
}
0
ответ дан Parth Bhatt 31 January 2011 в 02:40
поделиться

На основании вашего комментария, похоже, что фокус сместился, я думаю, что может происходить то, что клавиатура остается открытой для следующего поля ввода текста. Если ваша клавиша возврата является клавишей «Next», то возвращение YES для textFieldShouldReturn: сделает следующий textField первым респондентом и оставит клавиатуру видимой.

0
ответ дан Chris Garrett 31 January 2011 в 02:40
поделиться

Swift 3.0:

override var disablesAutomaticKeyboardDismissal: Bool {
    get{
        return false
    }
    set {
        self.disablesAutomaticKeyboardDismissal = false
    }
}
0
ответ дан Josh O'Connor 31 January 2011 в 02:40
поделиться

Помнили ли вы реализовать протокол UITextFieldDelegate?

2
ответ дан WrightsCS 31 January 2011 в 02:40
поделиться

Я прочитал очень много статей по этой проблеме, где экранная клавиатура отказывается прятаться, когда вы звоните resignFirstResponder, но ни одно из предложений не сработало для меня.

Я использую XCode 5 (iOS 7) и у меня есть экран iPhone, содержащий пару элементов управления, для которых требуется экранная клавиатура, но если пользователь нажимает UIButton, то я хочу, чтобы клавиатура исчезла.

enter image description here

Я, вероятно, потратил впустую один полный день, экспериментируя с resignFirstResponder и добавляя disablesAutomaticKeyboardDismissal функции для возврата NO, но ничего не помогло. Как только появилась экранная клавиатура, я больше не мог заставить ее исчезнуть.

1117 Но потом у меня была небольшая мозговая волна (поскольку у меня только маленький мозг).

Теперь, когда пользователь нажимает на мой UIButton, я просто отключаю элементы управления UITextField и UITextView.

- (IBAction)btnDate_Tapped:(id)sender {
    //  The user has clicked on the "Date" button.
    self.tbClientName.enabled = NO;
    self.tbComments.editable = NO;

И вдруг приложение обнаруживает, что в нем нет редактируемых текстовых полей, нуждающихся в экранной клавиатуре, и аккуратно выдвигает клавиатуру из поля зрения.

(С облегчением вздохнул.)

Мой UIButton фактически заставляет всплывающее диалоговое окно появиться. Когда пользователь отклоняет всплывающее окно, я снова включаю эти два элемента управления, поэтому, если пользователь нажимает на один из них, клавиатура появляется снова.

-(void)popoverControllerDidDismissPopover:(UIPopoverController *) popoverController {
    //  The user has closed our popup dialog.
    //  We need to make our UITextField and UITextView editable again.
    self.tbClientName.enabled = YES;
    self.tbComments.editable = YES;
    ... etc...
}

Просто, не правда ли?

И что удивительно, этот обходной путь работает даже на UIViewControllers, который появляется в Модальном стиле.

Надеюсь, это поможет другим жертвам XCode.

1
ответ дан Mason 31 January 2011 в 02:40
поделиться

Чтобы справиться с ошибкой, упомянутой Брэндоном, вы можете попробовать закрыть и снова открыть свой контроллер модального вида, если у вас все еще есть ссылка на него.

[textField resignFirstResponder];
[self dismissModalViewControllerAnimated:NO];
[self presentModalViewController:yourModalViewControllerReference animated:NO];

(где «self» - это контроллер, который вы использовали для первоначального открытия контроллера модального вида)

4
ответ дан drynaski 31 January 2011 в 02:40
поделиться

У меня была такая же проблема. Я понял, что после подключения делегата к Владельцу файла в Интерфейсном Разработчике я забыл сохранить в Интерфейсном Разработчике. После сохранения я перекомпилировал и клавиатура исчезла правильно при нажатии возврата.

3
ответ дан jmundie 31 January 2011 в 02:40
поделиться

Если вы используете Интерфейсный Разработчик, посмотрите, имеет ли ваш UITextField делегированную связь с вашим классом.

-Выберите свой UITextField и в своем подключении посмотрите, выходит ли одно соединение в Outlets-> делегат. Если нет, свяжись с твоим классом владельца файла.

Это должно быть связано с классом владельца вашего файла. Этот делегат сообщает, где искать метод. Если вы переопределяете метод, вам нужно указать, где объект будет искать его.

10
ответ дан Marcos Issler 31 January 2011 в 02:40
поделиться

Это решение сработало для меня после того, как ничего из вышеперечисленного не сработало. после вызова resignFirstResponder я добавил модальное представление & amp; удалил его.



    [myTextField resignFirstResponder];
    UIViewController *dummyController = [[UIViewController alloc] init];
    UIView *dummy = [[UIView alloc] initWithFrame:CGRectMake(-1, -1,1,1)];
    [dummyController setView:dummy];
    [self presentModalViewController:dummyController animated:NO];
    [dummyController dismissModalViewControllerAnimated:NO];

7
ответ дан gmeroz 31 January 2011 в 02:40
поделиться

Существует этот полезный метод, который позволяет вам отклонять клавиатуру при отображении модального диалога:

 - (BOOL)disablesAutomaticKeyboardDismissal { return NO; }

Это переопределит поведение по умолчанию для модального диалога, установленного Apple, и позволит вам отклонить клавиатуру. Он находится в классе UIViewController.

Надеюсь, это кому-нибудь поможет!

33
ответ дан jomo 31 January 2011 в 02:40
поделиться

xcode 4.5.1

Просто щелкните элемент управления, затем перетащите текстовое поле и отпустите его в файле .h

( клавиша управления + перетаскивание )

, затем во всплывающем меню выберите

connection=acton;
name= any name;
type=id;
event=did end on exit;
arguments=sender;

, затем нажмите кнопку подключения

3
ответ дан Sven Hohenstein 31 January 2011 в 02:40
поделиться
Другие вопросы по тегам:

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