2010-02-26 3 views
0

지난 주에만 표시되는 이상한 동작이 있습니다. IB를 사용하지 않고 모든 컨트롤이 코드로 작성됩니다.UITextField : 프로그래밍 방식으로 입력 한 텍스트가 텍스트 필드에 표시되지 않음

나는 키보드가 활성화 된 텍스트 필드가 있습니다. 처음으로 텍스트 필드를로드하고 키보드를 사용하면 모든 것이 정상적으로 작동합니다. 두 번째로 그것을 사용하면 입력 한 텍스트가 텍스트 필드에 표시되지 않습니다. 그러나 텍스트는 프로그래밍 방식으로 텍스트 필드에 있습니다. 예를 들어 검색을 실행하는 데 사용할 수 있습니다. 키보드가 닫히면 텍스트가 나타납니다.

일부 UITextField의 텍스트가 정렬되지 않았습니다. 예를 들어, "hello"라고 쓰고, 보통처럼 필드 중앙에 표시하는 대신 텍스트 아래쪽이 잘리는 정도까지 아래쪽으로 몇 픽셀 이동하여 표시합니다. 마치 다른보기가 텍스트를 가려서 텍스트의 아래쪽을 베고있는 것처럼 보입니다.

나는 three20을 사용하지만 http://groups.google.com/group/three20/browse_thread/thread/d7c4bc1ee2f9590d#에 따르면 Xcode가 문제의 원인으로 의심됩니다. 나는 Snow Leopard (10.6)와 Leopard (10.5)로 실행되는 두 가지 다른 Mac에서 동작을 보았습니다.

iPhone http://img22.imageshack.us/img22/3272/screenshotgi.png

그것은 명확하지 않다,하지만 검색 필드에 텍스트가 :

이 문제가 엑스 코드의 모습입니다. 자리 표시 자 텍스트가 표시되지 않습니다. 그러나 Search을 누르면 코드가 입력 된 텍스트와 함께 실행됩니다.

이 앱이 시뮬레이터에 표시하는 방법입니다

Screenshot XCode http://img532.imageshack.us/img532/2572/capturadepantalla201002o.png

답변

2

나는 마침내 이유를 찾습니다.

loadView이라는 함수에서 [textField becomeFirstResponder]을 호출합니다. 그러나 나는 그것을 viewDidAppear으로 옮기고 모든 것은 Ok를 작동한다.

+0

이 질문 옆에있는 체크 표시를 눌러야 시스템이 응답 한 것으로 알 수 있습니다. – TechZen

+0

제 경우에는'viewWillApear' 안에서'[textField becomeFirstResponder]'를 호출하고있었습니다. 언급했듯이'viewDidApear'로 이동하면 제대로 작동합니다. – Adrian

1

는 그 텍스트 필드와 아핀 변환 일어날 봤어요. 변환을 사용하여 텍스트 필드를 회전하면 텍스트가 수퍼 뷰의 임의의 부분에 나타납니다. 변형을 사용하여 텍스트 필드를 이동하여 키보드 공간을 만들면 필드 자체에서 포함 된 텍스트 편집기를 분리 할 수 ​​있습니다. 또한 텍스트 필드의 텍스트 특성이 UI의 시각적 레이아웃의 영향을받지 않기 때문에 텍스트가 코드에있는 이유를 설명합니다.

+0

나는보기를 회전시키지 않는다. 항상 세로 방향 모드로 실행하십시오. – mamcx