2010-12-10 2 views
1

Я использую пользовательский вид ввода на UITextField, установив его свойство InputView; он отлично работает.Возврат к стандартной клавиатуре для UITextField с пользовательским InputView (monotouch)

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

Глядя на реализацию UITextField.InputView, он начинает так:

public void set_InputView(UIView value) 
{ 
    if (!value) 
    { 
    throw new ArgumentNullException(value); 
    } 
... 

Таким образом, очевидно, что установка InputView в нуль не-го ...

Кто-нибудь знает, как это может сделать?

Спасибо

ответ

2

Это была ошибка в переплетах, я установил его и следующий релиз будет принимать нулевым. В то же время вы можете установить значение null с обходным путем:

NSObject nil = new NSObject (IntPtr.Zero); 
this.InputView = nil; 
+0

Благодарим за сообщение. К сожалению, он не компилируется: Ошибка CS0266: Невозможно неявно преобразовать тип «MonoTouch.Foundation.NSObject» в «MonoTouch.UIKit.UIView». Если я добавлю явное преобразование this.InputView = (UIView) nil - он компилируется, но не выполняется во время выполнения с InvalidCastException :-( – Incidently

+0

Похоже, я получил его, используя this.InputView = новый UIView (IntPtr.Zero). надлежащее обходное решение? Еще раз спасибо за вашу помощь – Incidently

+0

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

Смежные вопросы