<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>iPhoneGeek 爱疯极客 &#187; UIAlertView</title>
	<atom:link href="http://www.iphone-geek.cn/tag/uialertview/feed" rel="self" type="application/rss+xml" />
	<link>http://www.iphone-geek.cn</link>
	<description>iPhone 新闻，编程，技巧与提示，代码，教程</description>
	<lastBuildDate>Sun, 25 Jul 2010 13:49:13 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>在UIAlertView中加入UITextField</title>
		<link>http://www.iphone-geek.cn/%e7%bc%96%e7%a8%8b/%e5%9c%a8uialertview%e4%b8%ad%e5%8a%a0%e5%85%a5uitextfield</link>
		<comments>http://www.iphone-geek.cn/%e7%bc%96%e7%a8%8b/%e5%9c%a8uialertview%e4%b8%ad%e5%8a%a0%e5%85%a5uitextfield#comments</comments>
		<pubDate>Sun, 22 Nov 2009 04:05:52 +0000</pubDate>
		<dc:creator>bagusflyer</dc:creator>
				<category><![CDATA[用户界面]]></category>
		<category><![CDATA[编程]]></category>
		<category><![CDATA[UIAlertView]]></category>
		<category><![CDATA[教程]]></category>

		<guid isPermaLink="false">http://www.iphone-geek.cn/?p=283</guid>
		<description><![CDATA[
&#160;
这个简单的教程将介绍怎样在UIAlertView中加入UITextField。它只包括几行代码。你将学到CGAffineTransform和UITextField编程。
&#160;

这是截屏。

&#160;
我们开始吧…
1. 建立一个新的View Based项目。
你可以随意为其取名，我为其命名为TextFieldInAlert。
2. 代码
在viewcontroller.m或TextFieldInAlert.m（如果你命名为TextFieldInAlert的话），然后找到-(void)viewDidLoad 方法。取消其注释加入代码。
123456789101112131415161718192021- &#40;void&#41;viewDidLoad &#123;

&#160; &#160; &#91;super viewDidLoad&#93;;

&#160; &#160; UIAlertView *alert = &#91;&#91;UIAlertView alloc&#93; initWithTitle:@”Enter Name Here” 
&#160; &#160; &#160; &#160; message:@”this gets covered!” delegate:self 
&#160; &#160; &#160; &#160; cancelButtonTitle:@”Dismiss” otherButtonTitles:@”OK!”, nil&#93;;

&#160; &#160; UITextField *myTextField = &#91;&#91;UITextField alloc&#93; 
&#160; &#160; &#160; &#160; initWithFrame:CGRectMake&#40;12, 45, 260, 25&#41;&#93;;

&#160; &#160; &#91;myTextField setBackgroundColor:&#91;UIColor whiteColor&#93;&#93;;

&#160; &#160; &#91;alert addSubview:myTextField&#93;;

&#160; [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://icodeblog.com/wp-content/uploads/2009/11/Screen-shot-2009-11-09-at-8.12.11-AM-copy.png" alt="Screen shot 2009-11-09 at 8.12.11 AM copy" width="200" height="96" /></p>
<p>&nbsp;</p>
<p>这个简单的教程将介绍怎样在UIAlertView中加入UITextField。它只包括几行代码。你将学到CGAffineTransform和UITextField编程。</p>
<p>&nbsp;</p>
<p><span id="more-283"></span><br />
这是截屏。</p>
<p><img src="http://icodeblog.com/wp-content/uploads/2009/11/Screen-shot-2009-11-09-at-8.12.11-AM.png" alt="Screen shot 2009-11-09 at 8.12.11 AM" width="260" height="388" /></p>
<p>&nbsp;</p>
<p>我们开始吧…</p>
<p>1. 建立一个新的View Based项目。<br />
你可以随意为其取名，我为其命名为TextFieldInAlert。</p>
<p>2. 代码<br />
在viewcontroller.m或TextFieldInAlert.m（如果你命名为TextFieldInAlert的话），然后找到-(void)viewDidLoad 方法。取消其注释加入代码。</p>
<div class="codecolorer-container objc mac-classic" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br /></div></td><td><div class="objc codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span><span style="color: #a61390;">void</span><span style="color: #002200;">&#41;</span>viewDidLoad <span style="color: #002200;">&#123;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #002200;">&#91;</span>super viewDidLoad<span style="color: #002200;">&#93;</span>;<br />
<br />
&nbsp; &nbsp; UIAlertView <span style="color: #002200;">*</span>alert <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span>UIAlertView alloc<span style="color: #002200;">&#93;</span> initWithTitle<span style="color: #002200;">:</span>@”Enter Name Here” <br />
&nbsp; &nbsp; &nbsp; &nbsp; message<span style="color: #002200;">:</span>@”this <a href="http://www.opengroup.org/onlinepubs/009695399/functions/gets.html"><span style="color: #a61390;">gets</span></a> covered<span style="color: #002200;">!</span>” delegate<span style="color: #002200;">:</span>self <br />
&nbsp; &nbsp; &nbsp; &nbsp; cancelButtonTitle<span style="color: #002200;">:</span>@”Dismiss” otherButtonTitles<span style="color: #002200;">:</span>@”OK<span style="color: #002200;">!</span>”, <span style="color: #a61390;">nil</span><span style="color: #002200;">&#93;</span>;<br />
<br />
&nbsp; &nbsp; UITextField <span style="color: #002200;">*</span>myTextField <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span>UITextField alloc<span style="color: #002200;">&#93;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; initWithFrame<span style="color: #002200;">:</span>CGRectMake<span style="color: #002200;">&#40;</span>12, 45, 260, 25<span style="color: #002200;">&#41;</span><span style="color: #002200;">&#93;</span>;<br />
<br />
&nbsp; &nbsp; <span style="color: #002200;">&#91;</span>myTextField setBackgroundColor<span style="color: #002200;">:</span><span style="color: #002200;">&#91;</span>UIColor whiteColor<span style="color: #002200;">&#93;</span><span style="color: #002200;">&#93;</span>;<br />
<br />
&nbsp; &nbsp; <span style="color: #002200;">&#91;</span>alert addSubview<span style="color: #002200;">:</span>myTextField<span style="color: #002200;">&#93;</span>;<br />
<br />
&nbsp; &nbsp; <span style="color: #002200;">&#91;</span>alert show<span style="color: #002200;">&#93;</span>;<br />
<br />
&nbsp; &nbsp; <span style="color: #002200;">&#91;</span>alert release<span style="color: #002200;">&#93;</span>;<br />
&nbsp; &nbsp; <span style="color: #002200;">&#91;</span>myTextField release<span style="color: #002200;">&#93;</span>;<br />
<br />
<span style="color: #002200;">&#125;</span></div></td></tr></tbody></table></div>
<p>&nbsp;</p>
<p>我们做的是调用UIAlertView然后添加一个UITextField。 你可能注意到了UIAlertView的message部分，我们为其赋值为“this gets covered!”，如果我们不为其加上这个语句，那么alert的按钮会更靠上而弄乱UITextField。你可以试一下拿掉这一行看看会发生什么。现在UITextField 出现在UIAlertView中间了。试一下在UITextField输入点什么。噢，为什么键盘盖住了UIAlertView？有一个简单的修正方法。只需加入两行代码就可修正这个问题。加入代码：</p>
<div class="codecolorer-container objc mac-classic" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br /></div></td><td><div class="objc codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp; &nbsp; CGAffineTransform myTransform <span style="color: #002200;">=</span> CGAffineTransformMakeTranslation<span style="color: #002200;">&#40;</span>0, 60<span style="color: #002200;">&#41;</span>;<br />
<br />
&nbsp; &nbsp; <span style="color: #002200;">&#91;</span>alert setTransform<span style="color: #002200;">:</span>myTransform<span style="color: #002200;">&#93;</span>;</div></td></tr></tbody></table></div>
<p>&nbsp;</p>
<p>完整代码如下：</p>
<div class="codecolorer-container objc mac-classic" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br /></div></td><td><div class="objc codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp; &nbsp; UIAlertView <span style="color: #002200;">*</span>alert <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span>UIAlertView alloc<span style="color: #002200;">&#93;</span> initWithTitle<span style="color: #002200;">:</span>@”Enter Name Here” <br />
&nbsp; &nbsp; &nbsp; &nbsp; message<span style="color: #002200;">:</span>@”this <a href="http://www.opengroup.org/onlinepubs/009695399/functions/gets.html"><span style="color: #a61390;">gets</span></a> covered<span style="color: #002200;">!</span>” delegate<span style="color: #002200;">:</span>self <br />
&nbsp; &nbsp; &nbsp; &nbsp; cancelButtonTitle<span style="color: #002200;">:</span>@”Dismiss” otherButtonTitles<span style="color: #002200;">:</span>@”OK<span style="color: #002200;">!</span>”, <span style="color: #a61390;">nil</span><span style="color: #002200;">&#93;</span>;<br />
<br />
&nbsp; &nbsp; UITextField <span style="color: #002200;">*</span>myTextField <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span>UITextField alloc<span style="color: #002200;">&#93;</span> initWithFrame<span style="color: #002200;">:</span>CGRectMake<span style="color: #002200;">&#40;</span>12, 45, 260, 25<span style="color: #002200;">&#41;</span><span style="color: #002200;">&#93;</span>;<br />
<br />
&nbsp; &nbsp; CGAffineTransform myTransform <span style="color: #002200;">=</span> CGAffineTransformMakeTranslation<span style="color: #002200;">&#40;</span>0, 60<span style="color: #002200;">&#41;</span>;<br />
<br />
&nbsp; &nbsp; <span style="color: #002200;">&#91;</span>alert setTransform<span style="color: #002200;">:</span>myTransform<span style="color: #002200;">&#93;</span>;<br />
<br />
&nbsp; &nbsp; <span style="color: #002200;">&#91;</span>myTextField setBackgroundColor<span style="color: #002200;">:</span><span style="color: #002200;">&#91;</span>UIColor whiteColor<span style="color: #002200;">&#93;</span><span style="color: #002200;">&#93;</span>;<br />
<br />
&nbsp; &nbsp; <span style="color: #002200;">&#91;</span>alert addSubview<span style="color: #002200;">:</span>myTextField<span style="color: #002200;">&#93;</span>;<br />
<br />
&nbsp; &nbsp; <span style="color: #002200;">&#91;</span>alert show<span style="color: #002200;">&#93;</span>;<br />
<br />
&nbsp; &nbsp; <span style="color: #002200;">&#91;</span>alert release<span style="color: #002200;">&#93;</span>;<br />
<br />
&nbsp; &nbsp; <span style="color: #002200;">&#91;</span>myTextField release<span style="color: #002200;">&#93;</span>;</div></td></tr></tbody></table></div>
<p>&nbsp;</p>
<p>现在你按下“Build and Run”，你会注意到UITextField将在显示略高一点的位置，当你在UITextField输入时，键盘不会再盖住。这就是CGAffineTransform的作用。这里还有一个<a href="http://www.youtube.com/watch?v=1BvuD6MAPmU">视频教程</a>。源代码如下。</p>
<p>&nbsp;</p>
<p><a onclick="pageTracker._trackPageview('/ou[/cc]tgoing/xcode.appstoremod.com/TextFieldInAlert.zip?referer=http%3A%2F%2Ficodeblog.com%2F');" href="http://xcode.appstoremod.com/TextFieldInAlert.zip">iPhone Tutorial – UITextField In A UIAlertView</a></p>
<p>&nbsp;</p>
<p>原文见：<a title="Permanent Link to iPhone Coding Tutorial – Inserting A UITextField In A UIAlertView" rel="bookmark" href="http://icodeblog.com/2009/11/09/iphone-coding-tutorial-inserting-a-uitextfield-in-a-uialertview/">iPhone Coding Tutorial – Inserting A UITextField In A UIAlertView </a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.iphone-geek.cn/%e7%bc%96%e7%a8%8b/%e5%9c%a8uialertview%e4%b8%ad%e5%8a%a0%e5%85%a5uitextfield/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
