﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-面对现实，超越自己-随笔分类-IOS</title><link>http://www.cppblog.com/wanghaiguang/category/20888.html</link><description>逆水行舟，不进则退</description><language>zh-cn</language><lastBuildDate>Thu, 05 Mar 2015 08:52:36 GMT</lastBuildDate><pubDate>Thu, 05 Mar 2015 08:52:36 GMT</pubDate><ttl>60</ttl><item><title>UISearchBar控件（转载）</title><link>http://www.cppblog.com/wanghaiguang/archive/2015/03/04/209924.html</link><dc:creator>王海光</dc:creator><author>王海光</author><pubDate>Wed, 04 Mar 2015 11:23:00 GMT</pubDate><guid>http://www.cppblog.com/wanghaiguang/archive/2015/03/04/209924.html</guid><wfw:comment>http://www.cppblog.com/wanghaiguang/comments/209924.html</wfw:comment><comments>http://www.cppblog.com/wanghaiguang/archive/2015/03/04/209924.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wanghaiguang/comments/commentRss/209924.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wanghaiguang/services/trackbacks/209924.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: UISearchBar控件就是要为你完成搜索功能的一个专用控件。它集成了很多你意想不到的功能和特点！首先，还是来普及一下UISearchBar控件API相关的属性和方法吧！UISearchBar属性相关_searchBar&nbsp;= [[UISearchBar&nbsp;alloc]&nbsp;initWithFrame:CGRectZero];//&nbsp;初始化，不解释&nbsp;&nb...&nbsp;&nbsp;<a href='http://www.cppblog.com/wanghaiguang/archive/2015/03/04/209924.html'>阅读全文</a><img src ="http://www.cppblog.com/wanghaiguang/aggbug/209924.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wanghaiguang/" target="_blank">王海光</a> 2015-03-04 19:23 <a href="http://www.cppblog.com/wanghaiguang/archive/2015/03/04/209924.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>iOS 解决NSString转换为NSURL时包含中文字符</title><link>http://www.cppblog.com/wanghaiguang/archive/2014/08/18/208048.html</link><dc:creator>王海光</dc:creator><author>王海光</author><pubDate>Mon, 18 Aug 2014 01:45:00 GMT</pubDate><guid>http://www.cppblog.com/wanghaiguang/archive/2014/08/18/208048.html</guid><wfw:comment>http://www.cppblog.com/wanghaiguang/comments/208048.html</wfw:comment><comments>http://www.cppblog.com/wanghaiguang/archive/2014/08/18/208048.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wanghaiguang/comments/commentRss/208048.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wanghaiguang/services/trackbacks/208048.html</trackback:ping><description><![CDATA[<span style="color: #362e2b; font-family: Verdana; line-height: 26px; background-color: #ffffff; font-size: 14pt;">NSString中如果包括中文字符，在转换为NSURL时得到的值为nil<br /><br /></span><div><span style="color: #362e2b; font-family: Verdana; line-height: 26px; background-color: #ffffff; font-size: 14pt;">解决办法：</span></div>
<div>
<div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="font-family: Verdana; font-size: 14pt;">NSString&nbsp;*urlString&nbsp;=&nbsp;[NSString&nbsp;stringWithFormat:@"http://api.openweathermap.org/data/2.5/weather?q=%@&amp;units=imperial",cityName];</span><br />
<span style="color: red; font-family: Verdana; font-size: 14pt;">urlString&nbsp;</span><span style="color: red; font-family: Verdana; font-size: 14pt;">=</span><span style="color: red; font-family: Verdana; font-size: 14pt;">&nbsp;[urlString&nbsp;stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];</span><br /><span style="font-family: Verdana; font-size: 14pt;">
NSURL&nbsp;*url&nbsp;=&nbsp;[NSURL&nbsp;URLWithString:urlString];</span><br /><span style="font-family: Verdana; font-size: 14pt;">
NSLog(@"%@",&nbsp;url);</span></div>
</div><img src ="http://www.cppblog.com/wanghaiguang/aggbug/208048.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wanghaiguang/" target="_blank">王海光</a> 2014-08-18 09:45 <a href="http://www.cppblog.com/wanghaiguang/archive/2014/08/18/208048.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>iOS 监听 Home键（转载）</title><link>http://www.cppblog.com/wanghaiguang/archive/2014/08/01/207884.html</link><dc:creator>王海光</dc:creator><author>王海光</author><pubDate>Fri, 01 Aug 2014 05:31:00 GMT</pubDate><guid>http://www.cppblog.com/wanghaiguang/archive/2014/08/01/207884.html</guid><wfw:comment>http://www.cppblog.com/wanghaiguang/comments/207884.html</wfw:comment><comments>http://www.cppblog.com/wanghaiguang/archive/2014/08/01/207884.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wanghaiguang/comments/commentRss/207884.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wanghaiguang/services/trackbacks/207884.html</trackback:ping><description><![CDATA[<span style="background-color: #ececec; color: #626262; font-family: Arial, Helvetica, simsun, u5b8bu4f53; font-size: 14px; line-height: 25px;">第一步:</span><br />
<span style="color: #626262; font-family: Arial, Helvetica, simsun, u5b8bu4f53; line-height: 25px; background-color: #ececec;">创建2个NSNotificationCenter监听</span><br style="line-height: 25px; color: #626262; font-family: Arial, Helvetica, simsun, u5b8bu4f53; background-color: #ececec;" />
<pre class="prettyprint" name="code" style="white-space: pre-wrap; word-wrap: break-word; line-height: 25px; padding: 2px; border: 1px solid #888888; color: #626262; background-color: #ececec;"><span class="pun" style="color: #666600;">[[</span><span class="typ" style="color: #660066;">NSNotificationCenter</span><span class="pln" style="color: #000000;"> defaultCenter</span><span class="pun" style="color: #666600;">]</span><span class="pln" style="color: #000000;"> addObserver</span><span class="pun" style="color: #666600;">:</span><span class="kwd" style="color: #000088;">self</span><span class="pln" style="color: #000000;"> selector</span><span class="pun" style="color: #666600;">:</span><span class="lit" style="color: #006666;">@selector</span><span class="pun" style="color: #666600;">(</span><span class="pln" style="color: #000000;">applicationWillResignActive</span><span class="pun" style="color: #666600;">:)</span>
<span class="pln" style="color: #000000;">name</span><span class="pun" style="color: #666600;">:</span><span class="typ" style="color: #660066;">UIApplicationWillResignActiveNotification</span><span class="pln" style="color: #000000;"> </span><span class="kwd" style="color: #000088;">object</span><span class="pun" style="color: #666600;">:</span><span class="kwd" style="color: #000088;">nil</span><span class="pun" style="color: #666600;">];</span><span class="pln" style="color: #000000;"> </span><span class="com" style="color: #880000;">//监听是否触发home键挂起程序.</span>
<span class="pln" style="color: #000000;">    </span>
<span class="pun" style="color: #666600;">[[</span><span class="typ" style="color: #660066;">NSNotificationCenter</span><span class="pln" style="color: #000000;"> defaultCenter</span><span class="pun" style="color: #666600;">]</span><span class="pln" style="color: #000000;"> addObserver</span><span class="pun" style="color: #666600;">:</span><span class="kwd" style="color: #000088;">self</span><span class="pln" style="color: #000000;"> selector</span><span class="pun" style="color: #666600;">:</span><span class="lit" style="color: #006666;">@selector</span><span class="pun" style="color: #666600;">(</span><span class="pln" style="color: #000000;">applicationDidBecomeActive</span><span class="pun" style="color: #666600;">:)</span>
<span class="pln" style="color: #000000;">name</span><span class="pun" style="color: #666600;">:</span><span class="typ" style="color: #660066;">UIApplicationDidBecomeActiveNotification</span><span class="pln" style="color: #000000;"> </span><span class="kwd" style="color: #000088;">object</span><span class="pun" style="color: #666600;">:</span><span class="kwd" style="color: #000088;">nil</span><span class="pun" style="color: #666600;">];</span><span class="pln" style="color: #000000;"> </span><span class="com" style="color: #880000;">//监听是否重新进入程序程序.</span>
<p style="margin: 0px 0px 10px; padding: 0px;">
</p>
</pre>
<br style="line-height: 25px; color: #626262; font-family: Arial, Helvetica, simsun, u5b8bu4f53; background-color: #ececec;" />
<span style="color: #626262; font-family: Arial, Helvetica, simsun, u5b8bu4f53; line-height: 25px; background-color: #ececec;">第二步:</span><br style="line-height: 25px; color: #626262; font-family: Arial, Helvetica, simsun, u5b8bu4f53; background-color: #ececec;" />
<span style="color: #626262; font-family: Arial, Helvetica, simsun, u5b8bu4f53; line-height: 25px; background-color: #ececec;">实现2个NSNotificationCenter所触发的事件方法</span><br style="line-height: 25px; color: #626262; font-family: Arial, Helvetica, simsun, u5b8bu4f53; background-color: #ececec;" />
<pre class="prettyprint" name="code" style="white-space: pre-wrap; word-wrap: break-word; line-height: 25px; padding: 2px; border: 1px solid #888888; color: #626262; background-color: #ececec;"><span class="pun" style="color: #666600;">-</span><span class="pln" style="color: #000000;"> </span><span class="pun" style="color: #666600;">(</span><span class="kwd" style="color: #000088;">void</span><span class="pun" style="color: #666600;">)</span><span class="pln" style="color: #000000;">applicationWillResignActive</span><span class="pun" style="color: #666600;">:(</span><span class="typ" style="color: #660066;">NSNotification</span><span class="pln" style="color: #000000;"> </span><span class="pun" style="color: #666600;">*)</span><span class="pln" style="color: #000000;">notification</span>
<span class="pun" style="color: #666600;">{</span>
<span class="pln" style="color: #000000;">    printf</span><span class="pun" style="color: #666600;">(</span><span class="str" style="color: #008800;">"按理说是触发home按下\n"</span><span class="pun" style="color: #666600;">);</span>
<span class="pun" style="color: #666600;">}</span>
<span class="pun" style="color: #666600;">-</span><span class="pln" style="color: #000000;"> </span><span class="pun" style="color: #666600;">(</span><span class="kwd" style="color: #000088;">void</span><span class="pun" style="color: #666600;">)</span><span class="pln" style="color: #000000;">applicationDidBecomeActive</span><span class="pun" style="color: #666600;">:(</span><span class="typ" style="color: #660066;">NSNotification</span><span class="pln" style="color: #000000;"> </span><span class="pun" style="color: #666600;">*)</span><span class="pln" style="color: #000000;">notification</span>
<span class="pun" style="color: #666600;">{</span>
<span class="pln" style="color: #000000;">    printf</span><span class="pun" style="color: #666600;">(</span><span class="str" style="color: #008800;">"按理说是重新进来后响应\n"</span><span class="pun" style="color: #666600;">);</span>
<span class="pun" style="color: #666600;">}</span>
<p style="margin: 0px 0px 10px; padding: 0px;">
</p>
</pre>
<br style="line-height: 25px; color: #626262; font-family: Arial, Helvetica, simsun, u5b8bu4f53; background-color: #ececec;" />
<span style="color: #626262; font-family: Arial, Helvetica, simsun, u5b8bu4f53; line-height: 25px; background-color: #ececec;">注: 在home键触发后,AppDelegate响应的方法为:</span><br style="line-height: 25px; color: #626262; font-family: Arial, Helvetica, simsun, u5b8bu4f53; background-color: #ececec;" />
<pre class="prettyprint" name="code" style="white-space: pre-wrap; word-wrap: break-word; line-height: 25px; padding: 2px; border: 1px solid #888888; color: #626262; background-color: #ececec;"><p style="margin: 0px 0px 10px; padding: 0px;"><span class="pun" style="color: #666600;">-</span><span class="pln" style="color: #000000;"> </span><span class="pun" style="color: #666600;">(</span><span class="kwd" style="color: #000088;">void</span><span class="pun" style="color: #666600;">)</span><span class="pln" style="color: #000000;">applicationDidEnterBackground</span><span class="pun" style="color: #666600;">:(</span><span class="typ" style="color: #660066;">UIApplication</span><span class="pln" style="color: #000000;"> </span><span class="pun" style="color: #666600;">*)</span><span class="pln" style="color: #000000;">application</span>
<span class="pun" style="color: #666600;">{</span>
<span class="pln" style="color: #000000;">    </span><span class="com" style="color: #880000;">/*</span>
<span class="com" style="color: #880000;">     Use this method to release shared resources, save user data, invalidate timers, </span>
</p>
<p style="margin: 0px 0px 10px; padding: 0px;"><span class="com" style="color: #880000;">     and store enough application state information to restore your application to its current state in case it is terminated later.</span>
<span class="com" style="color: #880000;">     If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.</span>
<span class="com" style="color: #880000;">     */</span>
<span class="pun" style="color: #666600;">}</span></p>
</pre>
<span style="color: #626262; font-family: Arial, Helvetica, simsun, u5b8bu4f53; line-height: 25px; background-color: #ececec;">本文转自：</span>http://blog.csdn.net/sqc3375177/article/details/9466687
<div><br />
</div>
<div>其他相关信息：</div>
<div>
<div style="line-height: 25px; color: #323e32; background-color: #ffffff; font-family: Monaco, 'DejaVu sans Mono', 'Bitstream Vera sans Mono', Consolas, 'Courier new', monospace; font-size: 12px; width: 679px; overflow: auto; margin-left: 9px; padding: 1px; word-break: break-all; word-wrap: break-word;">
<ol start="1" style="line-height: 1.4em; margin: 0px 0px 1px; padding: 2px 0px; border: 1px solid #d1d7dc; list-style: none; font-size: 1em; color: #2b91af;">
    <li style="line-height: 18px; margin: 0px 0px 0px 38px; padding: 0px 0px 0px 10px; border-width: 0px 0px 0px 1px; list-style: decimal; font-size: 1em; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa;"><span style="word-wrap: normal; word-break: normal; color: black;">-&nbsp;<wbr style="line-height: 21px;">(BOOL)application:(UIApplication&nbsp;<wbr style="line-height: 21px;">*)application&nbsp;<wbr style="line-height: 21px;">didFinishLaunchingWithOp<wbr style="line-height: 21px;">tions:(NSDictionary&nbsp;<wbr style="line-height: 21px;">*)launchOptions&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;"></span></li>
    <li style="line-height: 18px; margin: 0px 0px 0px 38px; padding: 0px 0px 0px 10px; border-width: 0px 0px 0px 1px; list-style: decimal; font-size: 1em; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa;"><span style="word-wrap: normal; word-break: normal; color: black;">{&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;"></span></li>
    <li style="line-height: 18px; margin: 0px 0px 0px 38px; padding: 0px 0px 0px 10px; border-width: 0px 0px 0px 1px; list-style: decimal; font-size: 1em; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa;"><span style="word-wrap: normal; word-break: normal; color: black;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;"><span style="word-wrap: normal; word-break: normal; color: #008200;">//&nbsp;<wbr style="line-height: 21px;">Override&nbsp;<wbr style="line-height: 21px;">point&nbsp;<wbr style="line-height: 21px;">for&nbsp;<wbr style="line-height: 21px;">customization&nbsp;<wbr style="line-height: 21px;">after&nbsp;<wbr style="line-height: 21px;">application&nbsp;<wbr style="line-height: 21px;">launch.</span>&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;"></span></li>
    <li style="line-height: 18px; margin: 0px 0px 0px 38px; padding: 0px 0px 0px 10px; border-width: 0px 0px 0px 1px; list-style: decimal; font-size: 1em; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa;"><span style="word-wrap: normal; word-break: normal; color: black;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">NSLog(@<span style="word-wrap: normal; word-break: normal; color: blue;">"\n&nbsp;<wbr style="line-height: 21px;">===&gt;&nbsp;<wbr style="line-height: 21px;">程序开始&nbsp;<wbr style="line-height: 21px;">!"</span>);&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;"></span></li>
    <li style="line-height: 18px; margin: 0px 0px 0px 38px; padding: 0px 0px 0px 10px; border-width: 0px 0px 0px 1px; list-style: decimal; font-size: 1em; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa;"><span style="word-wrap: normal; word-break: normal; color: black;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;"></span></li>
    <li style="line-height: 18px; margin: 0px 0px 0px 38px; padding: 0px 0px 0px 10px; border-width: 0px 0px 0px 1px; list-style: decimal; font-size: 1em; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa;"><span style="word-wrap: normal; word-break: normal; color: black;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;"><span style="word-wrap: normal; word-break: normal; color: #7f0055; font-weight: bold;">return</span>&nbsp;<wbr style="line-height: 21px;">YES;&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;"></span></li>
    <li style="line-height: 18px; margin: 0px 0px 0px 38px; padding: 0px 0px 0px 10px; border-width: 0px 0px 0px 1px; list-style: decimal; font-size: 1em; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa;"><span style="word-wrap: normal; word-break: normal; color: black;">}&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;"></span></li>
    <li style="line-height: 18px; margin: 0px 0px 0px 38px; padding: 0px 0px 0px 10px; border-width: 0px 0px 0px 1px; list-style: decimal; font-size: 1em; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa;"><span style="word-wrap: normal; word-break: normal; color: black;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;"></span></li>
    <li style="line-height: 18px; margin: 0px 0px 0px 38px; padding: 0px 0px 0px 10px; border-width: 0px 0px 0px 1px; list-style: decimal; font-size: 1em; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa;"><span style="word-wrap: normal; word-break: normal; color: black;">-&nbsp;<wbr style="line-height: 21px;">(<span style="word-wrap: normal; word-break: normal; color: #7f0055; font-weight: bold;">void</span>)applicationWillResignAct<wbr style="line-height: 21px;">ive:(UIApplication&nbsp;<wbr style="line-height: 21px;">*)application&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;"></span></li>
    <li style="line-height: 18px; margin: 0px 0px 0px 38px; padding: 0px 0px 0px 10px; border-width: 0px 0px 0px 1px; list-style: decimal; font-size: 1em; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa;"><span style="word-wrap: normal; word-break: normal; color: black;">{&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;"></span></li>
    <li style="line-height: 18px; margin: 0px 0px 0px 38px; padding: 0px 0px 0px 10px; border-width: 0px 0px 0px 1px; list-style: decimal; font-size: 1em; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa;"><span style="word-wrap: normal; word-break: normal; color: black;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;"></span></li>
    <li style="line-height: 18px; margin: 0px 0px 0px 38px; padding: 0px 0px 0px 10px; border-width: 0px 0px 0px 1px; list-style: decimal; font-size: 1em; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa;"><span style="word-wrap: normal; word-break: normal; color: black;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">NSLog(@<span style="word-wrap: normal; word-break: normal; color: blue;">"\n&nbsp;<wbr style="line-height: 21px;">===&gt;&nbsp;<wbr style="line-height: 21px;">程序暂行&nbsp;<wbr style="line-height: 21px;">!"</span>);&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;"></span></li>
    <li style="line-height: 18px; margin: 0px 0px 0px 38px; padding: 0px 0px 0px 10px; border-width: 0px 0px 0px 1px; list-style: decimal; font-size: 1em; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa;"><span style="word-wrap: normal; word-break: normal; color: black;">}&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;"></span></li>
    <li style="line-height: 18px; margin: 0px 0px 0px 38px; padding: 0px 0px 0px 10px; border-width: 0px 0px 0px 1px; list-style: decimal; font-size: 1em; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa;"><span style="word-wrap: normal; word-break: normal; color: black;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;"></span></li>
    <li style="line-height: 18px; margin: 0px 0px 0px 38px; padding: 0px 0px 0px 10px; border-width: 0px 0px 0px 1px; list-style: decimal; font-size: 1em; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa;"><span style="word-wrap: normal; word-break: normal; color: black;">-&nbsp;<wbr style="line-height: 21px;">(<span style="word-wrap: normal; word-break: normal; color: #7f0055; font-weight: bold;">void</span>)applicationDidEnterBackg<wbr style="line-height: 21px;">round:(UIApplication&nbsp;<wbr style="line-height: 21px;">*)application&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;"></span></li>
    <li style="line-height: 18px; margin: 0px 0px 0px 38px; padding: 0px 0px 0px 10px; border-width: 0px 0px 0px 1px; list-style: decimal; font-size: 1em; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa;"><span style="word-wrap: normal; word-break: normal; color: black;">{&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;"></span></li>
    <li style="line-height: 18px; margin: 0px 0px 0px 38px; padding: 0px 0px 0px 10px; border-width: 0px 0px 0px 1px; list-style: decimal; font-size: 1em; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa;"><span style="word-wrap: normal; word-break: normal; color: black;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;"></span></li>
    <li style="line-height: 18px; margin: 0px 0px 0px 38px; padding: 0px 0px 0px 10px; border-width: 0px 0px 0px 1px; list-style: decimal; font-size: 1em; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa;"><span style="word-wrap: normal; word-break: normal; color: black;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">NSLog(@<span style="word-wrap: normal; word-break: normal; color: blue;">"\n&nbsp;<wbr style="line-height: 21px;">===&gt;&nbsp;<wbr style="line-height: 21px;">程序进入后台&nbsp;<wbr style="line-height: 21px;">!"</span>);&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;"></span></li>
    <li style="line-height: 18px; margin: 0px 0px 0px 38px; padding: 0px 0px 0px 10px; border-width: 0px 0px 0px 1px; list-style: decimal; font-size: 1em; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa;"><span style="word-wrap: normal; word-break: normal; color: black;">}&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;"></span></li>
    <li style="line-height: 18px; margin: 0px 0px 0px 38px; padding: 0px 0px 0px 10px; border-width: 0px 0px 0px 1px; list-style: decimal; font-size: 1em; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa;"><span style="word-wrap: normal; word-break: normal; color: black;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;"></span></li>
    <li style="line-height: 18px; margin: 0px 0px 0px 38px; padding: 0px 0px 0px 10px; border-width: 0px 0px 0px 1px; list-style: decimal; font-size: 1em; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa;"><span style="word-wrap: normal; word-break: normal; color: black;">-&nbsp;<wbr style="line-height: 21px;">(<span style="word-wrap: normal; word-break: normal; color: #7f0055; font-weight: bold;">void</span>)applicationWillEnterFore<wbr style="line-height: 21px;">ground:(UIApplication&nbsp;<wbr style="line-height: 21px;">*)application&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;"></span></li>
    <li style="line-height: 18px; margin: 0px 0px 0px 38px; padding: 0px 0px 0px 10px; border-width: 0px 0px 0px 1px; list-style: decimal; font-size: 1em; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa;"><span style="word-wrap: normal; word-break: normal; color: black;">{&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;"></span></li>
    <li style="line-height: 18px; margin: 0px 0px 0px 38px; padding: 0px 0px 0px 10px; border-width: 0px 0px 0px 1px; list-style: decimal; font-size: 1em; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa;"><span style="word-wrap: normal; word-break: normal; color: black;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;"></span></li>
    <li style="line-height: 18px; margin: 0px 0px 0px 38px; padding: 0px 0px 0px 10px; border-width: 0px 0px 0px 1px; list-style: decimal; font-size: 1em; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa;"><span style="word-wrap: normal; word-break: normal; color: black;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">NSLog(@<span style="word-wrap: normal; word-break: normal; color: blue;">"\n&nbsp;<wbr style="line-height: 21px;">===&gt;&nbsp;<wbr style="line-height: 21px;">程序进入前台&nbsp;<wbr style="line-height: 21px;">!"</span>);&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;"></span></li>
    <li style="line-height: 18px; margin: 0px 0px 0px 38px; padding: 0px 0px 0px 10px; border-width: 0px 0px 0px 1px; list-style: decimal; font-size: 1em; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa;"><span style="word-wrap: normal; word-break: normal; color: black;">}&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;"></span></li>
    <li style="line-height: 18px; margin: 0px 0px 0px 38px; padding: 0px 0px 0px 10px; border-width: 0px 0px 0px 1px; list-style: decimal; font-size: 1em; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa;"><span style="word-wrap: normal; word-break: normal; color: black;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;"></span></li>
    <li style="line-height: 18px; margin: 0px 0px 0px 38px; padding: 0px 0px 0px 10px; border-width: 0px 0px 0px 1px; list-style: decimal; font-size: 1em; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa;"><span style="word-wrap: normal; word-break: normal; color: black;">-&nbsp;<wbr style="line-height: 21px;">(<span style="word-wrap: normal; word-break: normal; color: #7f0055; font-weight: bold;">void</span>)applicationDidBecomeActi<wbr style="line-height: 21px;">ve:(UIApplication&nbsp;<wbr style="line-height: 21px;">*)application&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;"></span></li>
    <li style="line-height: 18px; margin: 0px 0px 0px 38px; padding: 0px 0px 0px 10px; border-width: 0px 0px 0px 1px; list-style: decimal; font-size: 1em; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa;"><span style="word-wrap: normal; word-break: normal; color: black;">{&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;"></span></li>
    <li style="line-height: 18px; margin: 0px 0px 0px 38px; padding: 0px 0px 0px 10px; border-width: 0px 0px 0px 1px; list-style: decimal; font-size: 1em; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa;"><span style="word-wrap: normal; word-break: normal; color: black;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">NSLog(@<span style="word-wrap: normal; word-break: normal; color: blue;">"\n&nbsp;<wbr style="line-height: 21px;">===&gt;&nbsp;<wbr style="line-height: 21px;">程序重新激活&nbsp;<wbr style="line-height: 21px;">!"</span>);&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;"></span></li>
    <li style="line-height: 18px; margin: 0px 0px 0px 38px; padding: 0px 0px 0px 10px; border-width: 0px 0px 0px 1px; list-style: decimal; font-size: 1em; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa;"><span style="word-wrap: normal; word-break: normal; color: black;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;"></span></li>
    <li style="line-height: 18px; margin: 0px 0px 0px 38px; padding: 0px 0px 0px 10px; border-width: 0px 0px 0px 1px; list-style: decimal; font-size: 1em; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa;"><span style="word-wrap: normal; word-break: normal; color: black;">}&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;"></span></li>
    <li style="line-height: 18px; margin: 0px 0px 0px 38px; padding: 0px 0px 0px 10px; border-width: 0px 0px 0px 1px; list-style: decimal; font-size: 1em; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa;"><span style="word-wrap: normal; word-break: normal; color: black;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;"></span></li>
    <li style="line-height: 18px; margin: 0px 0px 0px 38px; padding: 0px 0px 0px 10px; border-width: 0px 0px 0px 1px; list-style: decimal; font-size: 1em; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa;"><span style="word-wrap: normal; word-break: normal; color: black;">-&nbsp;<wbr style="line-height: 21px;">(<span style="word-wrap: normal; word-break: normal; color: #7f0055; font-weight: bold;">void</span>)applicationWillTerminate<wbr style="line-height: 21px;">:(UIApplication&nbsp;<wbr style="line-height: 21px;">*)application&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;"></span></li>
    <li style="line-height: 18px; margin: 0px 0px 0px 38px; padding: 0px 0px 0px 10px; border-width: 0px 0px 0px 1px; list-style: decimal; font-size: 1em; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa;"><span style="word-wrap: normal; word-break: normal; color: black;">{&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;"></span></li>
    <li style="line-height: 18px; margin: 0px 0px 0px 38px; padding: 0px 0px 0px 10px; border-width: 0px 0px 0px 1px; list-style: decimal; font-size: 1em; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa;"><span style="word-wrap: normal; word-break: normal; color: black;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">NSLog(@<span style="word-wrap: normal; word-break: normal; color: blue;">"\n&nbsp;<wbr style="line-height: 21px;">===&gt;&nbsp;<wbr style="line-height: 21px;">程序意外暂行&nbsp;<wbr style="line-height: 21px;">!"</span>);&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;"></span></li>
    <li style="line-height: 18px; margin: 0px 0px 0px 38px; padding: 0px 0px 0px 10px; border-width: 0px 0px 0px 1px; list-style: decimal; font-size: 1em; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa;"><span style="word-wrap: normal; word-break: normal; color: black;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;"></span></li>
    <li style="line-height: 18px; margin: 0px 0px 0px 38px; padding: 0px 0px 0px 10px; border-width: 0px 0px 0px 1px; list-style: decimal; font-size: 1em; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa;"><span style="word-wrap: normal; word-break: normal; color: black;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">UIDevice&nbsp;<wbr style="line-height: 21px;">*device&nbsp;<wbr style="line-height: 21px;">=&nbsp;<wbr style="line-height: 21px;">[UIDevice&nbsp;<wbr style="line-height: 21px;">currentDevice];&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;"></span></li>
    <li style="line-height: 18px; margin: 0px 0px 0px 38px; padding: 0px 0px 0px 10px; border-width: 0px 0px 0px 1px; list-style: decimal; font-size: 1em; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa;"><span style="word-wrap: normal; word-break: normal; color: black;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;"></span></li>
    <li style="line-height: 18px; margin: 0px 0px 0px 38px; padding: 0px 0px 0px 10px; border-width: 0px 0px 0px 1px; list-style: decimal; font-size: 1em; border-left-style: solid; border-left-color: #d1d7dc; background-color: #fafafa;"><span style="word-wrap: normal; word-break: normal; color: black;">}&nbsp;<wbr style="line-height: 21px;">&nbsp;<wbr style="line-height: 21px;"></span></li>
</ol>
</div>
<span style="line-height: 25px; color: #323e32; font-size: 16px; background-color: #ffffff; word-wrap: normal; word-break: normal; font-family: Helvetica, Tahoma, Arial, sans-serif;">&nbsp;<wbr style="line-height: 28px;"></span>
<p style="margin: 0px; padding: 0px; color: #323e32; font-family: simsun; font-size: 16px; background-color: #ffffff; border: 0px; list-style: none; word-wrap: normal; word-break: normal;"><span style="word-wrap: normal; word-break: normal; color: #ff0000;">首次运行</span>：</p>
<p style="margin: 0px; padding: 0px; color: #323e32; font-family: simsun; font-size: 16px; background-color: #ffffff; border: 0px; list-style: none; word-wrap: normal; word-break: normal;">- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOp<wbr style="line-height: 28px;">tions:(NSDictionary *)launchOptions</p>
<p style="margin: 0px; padding: 0px; color: #323e32; font-family: simsun; font-size: 16px; background-color: #ffffff; border: 0px; list-style: none; word-wrap: normal; word-break: normal;">- (void)applicationDidBecomeActi<wbr style="line-height: 28px;">ve:(UIApplication *)application</p>
<p style="margin: 0px; padding: 0px; color: #323e32; font-family: simsun; font-size: 16px; background-color: #ffffff; border: 0px; list-style: none; word-wrap: normal; word-break: normal;">&nbsp;<wbr style="line-height: 28px;"></p>
<p style="margin: 0px; padding: 0px; color: #323e32; font-family: simsun; font-size: 16px; background-color: #ffffff; border: 0px; list-style: none; word-wrap: normal; word-break: normal;"><span style="word-wrap: normal; word-break: normal; color: #ff0000;">首次关闭（home）：</span></p>
<p style="margin: 0px; padding: 0px; color: #323e32; font-family: simsun; font-size: 16px; background-color: #ffffff; border: 0px; list-style: none; word-wrap: normal; word-break: normal;">- (void)applicationWillResignAct<wbr style="line-height: 28px;">ive:(UIApplication *)application</p>
<p style="margin: 0px; padding: 0px; color: #323e32; font-family: simsun; font-size: 16px; background-color: #ffffff; border: 0px; list-style: none; word-wrap: normal; word-break: normal;">- (void)applicationDidEnterBackg<wbr style="line-height: 28px;">round:(UIApplication *)application</p>
<p style="margin: 0px; padding: 0px; color: #323e32; font-family: simsun; font-size: 16px; background-color: #ffffff; border: 0px; list-style: none; word-wrap: normal; word-break: normal;">&nbsp;<wbr style="line-height: 28px;"></p>
<p style="margin: 0px; padding: 0px; color: #323e32; font-family: simsun; font-size: 16px; background-color: #ffffff; border: 0px; list-style: none; word-wrap: normal; word-break: normal;"><span style="word-wrap: normal; word-break: normal; color: #ff0000;">再次运行：</span></p>
<p style="margin: 0px; padding: 0px; color: #323e32; font-family: simsun; font-size: 16px; background-color: #ffffff; border: 0px; list-style: none; word-wrap: normal; word-break: normal;">- (void)applicationWillEnterFore<wbr style="line-height: 28px;">ground:(UIApplication *)application</p>
<p style="margin: 0px; padding: 0px; color: #323e32; font-family: simsun; font-size: 16px; background-color: #ffffff; border: 0px; list-style: none; word-wrap: normal; word-break: normal;">- (void)applicationDidBecomeActi<wbr style="line-height: 28px;">ve:(UIApplication *)application</p>
<p style="margin: 0px; padding: 0px; color: #323e32; font-family: simsun; font-size: 16px; background-color: #ffffff; border: 0px; list-style: none; word-wrap: normal; word-break: normal;">&nbsp;<wbr style="line-height: 28px;"></p>
<p style="margin: 0px; padding: 0px; color: #323e32; font-family: simsun; font-size: 16px; background-color: #ffffff; border: 0px; list-style: none; word-wrap: normal; word-break: normal;"><span style="word-wrap: normal; word-break: normal; color: #ff0000;">再次关闭：</span></p>
<p style="margin: 0px; padding: 0px; color: #323e32; font-family: simsun; font-size: 16px; background-color: #ffffff; border: 0px; list-style: none; word-wrap: normal; word-break: normal;">- (void)applicationWillResignAct<wbr style="line-height: 28px;">ive:(UIApplication *)application</p>
<p style="margin: 0px; padding: 0px; color: #323e32; font-family: simsun; font-size: 16px; background-color: #ffffff; border: 0px; list-style: none; word-wrap: normal; word-break: normal;">- (void)applicationDidEnterBackg<wbr style="line-height: 28px;">round:(UIApplication *)application</p>
</div>
<div><br />
</div>
<div>本文转自：http://friendlysong.blog.163.com/blog/static/3225243920128144251666/</div><img src ="http://www.cppblog.com/wanghaiguang/aggbug/207884.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wanghaiguang/" target="_blank">王海光</a> 2014-08-01 13:31 <a href="http://www.cppblog.com/wanghaiguang/archive/2014/08/01/207884.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>UIGestureRecognizer学习笔记（转载）——手势识别功能</title><link>http://www.cppblog.com/wanghaiguang/archive/2014/07/29/207854.html</link><dc:creator>王海光</dc:creator><author>王海光</author><pubDate>Tue, 29 Jul 2014 05:35:00 GMT</pubDate><guid>http://www.cppblog.com/wanghaiguang/archive/2014/07/29/207854.html</guid><wfw:comment>http://www.cppblog.com/wanghaiguang/comments/207854.html</wfw:comment><comments>http://www.cppblog.com/wanghaiguang/archive/2014/07/29/207854.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wanghaiguang/comments/commentRss/207854.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wanghaiguang/services/trackbacks/207854.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: UIGestureRecognizer&nbsp;是一个具体手势的基类，提供了较为简单的手势实现方式 &nbsp;The concrete subclasses of&nbsp;UIGestureRecognizer&nbsp;are the following:UITapGestureRecognizerUIPinchGestureRecognizerUIRotationGestureRecog...&nbsp;&nbsp;<a href='http://www.cppblog.com/wanghaiguang/archive/2014/07/29/207854.html'>阅读全文</a><img src ="http://www.cppblog.com/wanghaiguang/aggbug/207854.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wanghaiguang/" target="_blank">王海光</a> 2014-07-29 13:35 <a href="http://www.cppblog.com/wanghaiguang/archive/2014/07/29/207854.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>iOS 添加libxml2.dylb 后  找不到&lt;libxml/tree.h&gt; 头文件</title><link>http://www.cppblog.com/wanghaiguang/archive/2014/07/15/207651.html</link><dc:creator>王海光</dc:creator><author>王海光</author><pubDate>Tue, 15 Jul 2014 05:50:00 GMT</pubDate><guid>http://www.cppblog.com/wanghaiguang/archive/2014/07/15/207651.html</guid><wfw:comment>http://www.cppblog.com/wanghaiguang/comments/207651.html</wfw:comment><comments>http://www.cppblog.com/wanghaiguang/archive/2014/07/15/207651.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wanghaiguang/comments/commentRss/207651.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wanghaiguang/services/trackbacks/207651.html</trackback:ping><description><![CDATA[<span style="font-size: 14pt; font-family: Verdana;">在</span><span style="color: #333333; font-family: Verdana; background-color: #ffffff; font-size: 14pt;">&#8220;Header Search Paths&#8221; 中添加</span><span style="color: #333333; font-family: Verdana; font-size: 14pt; background-color: #ffffff;">&#8220;/usr/include/libxml2&#8243; <br /></span><span style="color: #333333; font-family: Verdana; font-size: 14pt; background-color: #ffffff;">在</span><span style="color: #333333; font-family: Verdana; background-color: #ffffff; font-size: 14pt;">&#8220;Other Linker Flags&#8221;添加</span><span style="color: #333333; font-family: Verdana; font-size: 14pt; background-color: #ffffff;">&#8220;-lxml2&#8243;&nbsp;<br /></span><span style="color: #333333; font-family: Verdana; font-size: 14pt; background-color: #ffffff;">运行后出现错误找不到</span><span style="font-size: 14pt; font-family: Verdana;">&lt;libxml/tree.h&gt;<br /><br /></span><span style="font-size: 14pt; font-family: Verdana;">&nbsp;解决办法：</span><span style="font-size: 14pt; font-family: Verdana;">在</span><span style="color: #333333; font-family: Verdana; background-color: #ffffff; font-size: 14pt;">&#8220;Header Search Paths&#8221; 中添加</span><span style="background-color: #ffffff;">&nbsp;</span><span style="color: red; font-family: Verdana; font-size: 14pt; background-color: #ffffff;">${SDKROOT}</span><span style="color: #333333; font-family: Verdana; font-size: 14pt; background-color: #ffffff;"><strong>/usr/include/libxml2</strong></span><img src ="http://www.cppblog.com/wanghaiguang/aggbug/207651.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wanghaiguang/" target="_blank">王海光</a> 2014-07-15 13:50 <a href="http://www.cppblog.com/wanghaiguang/archive/2014/07/15/207651.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>iOS UIButton笔记</title><link>http://www.cppblog.com/wanghaiguang/archive/2014/07/15/207650.html</link><dc:creator>王海光</dc:creator><author>王海光</author><pubDate>Tue, 15 Jul 2014 05:37:00 GMT</pubDate><guid>http://www.cppblog.com/wanghaiguang/archive/2014/07/15/207650.html</guid><wfw:comment>http://www.cppblog.com/wanghaiguang/comments/207650.html</wfw:comment><comments>http://www.cppblog.com/wanghaiguang/archive/2014/07/15/207650.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wanghaiguang/comments/commentRss/207650.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wanghaiguang/services/trackbacks/207650.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="font-size: 12pt; font-family: Verdana;">创建两种方法：</span><br /><span style="font-size: 12pt; font-family: Verdana;">（1）常规的initWithFrame的方式&nbsp;</span><br /><span style="font-size: 12pt; font-family: Verdana;">UIButton&nbsp;*btn1 =&nbsp;[[UIButton&nbsp;alloc]initWithFrame:CGRectMake(100,&nbsp;50,&nbsp;100,&nbsp;75)];</span><br /><br /><span style="font-size: 12pt; font-family: Verdana;">[btn1 setTitle:@"close"&nbsp;forState:UIControlStateNormal];</span><br /><span style="font-size: 12pt; font-family: Verdana;">btn1.backgroundColor&nbsp;=&nbsp;[UIColor&nbsp;greenColor];</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">//</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">button的背景颜色</span><span style="color: #008000; "><br /></span><span style="font-size: 12pt; font-family: Verdana;">[btn1 setBackgroundImage:[UIImage&nbsp;imageNamed:@"1.png"]&nbsp;forState:UIControlStateNormal];</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">//</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">button的背景图片</span><span style="color: #008000; "><br /></span><br /><span style="font-size: 12pt; font-family: Verdana;">（2）UIButton 的一个类方法（也可以说是静态方法）buttonWithType&nbsp;</span><br /><span style="font-size: 12pt; font-family: Verdana;">UIButton&nbsp;*btn2 =&nbsp;[UIButton&nbsp;buttonWithType:UIButtonTypeRoundedRect];</span><br /><span style="font-family: Verdana;">btn2</span><span style="font-size: 12pt; font-family: Verdana;">.frame&nbsp;=&nbsp;CGRectMake(200,&nbsp;20,&nbsp;50,&nbsp;60);</span><br /><span style="font-size: 12pt; font-family: Verdana;">btn2.backgroundColor&nbsp;=&nbsp;[UIColor&nbsp;blackColor];</span><br /><span style="font-size: 12pt; font-family: Verdana;">[btn2 setTitle:@"clicke"&nbsp;forState:UIControlStateNormal];</span><br /><span style="font-size: 12pt; font-family: Verdana;">[self.window&nbsp;addSubview:btn1];</span><br /><span style="font-size: 12pt; font-family: Verdana;">[self.window&nbsp;addSubview:btn2];</span><br />&nbsp;<br /><span style="font-size: 12pt; font-family: Verdana;">能够定义的button类型由6种</span><br /><span style="font-size: 12pt; font-family: Verdana;">typedef&nbsp;</span><span style="color: #0000ff; font-size: 12pt; font-family: Verdana;">enum</span>&nbsp;<br /><span style="font-size: 12pt; font-family: Verdana;">{&nbsp;</span><br /><span style="font-size: 12pt; font-family: Verdana;">&nbsp;&nbsp;&nbsp;&nbsp;UIButtonTypeCustom&nbsp;=&nbsp;0, &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">//</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">&nbsp;自定义，无风格&nbsp;</span><span style="color: #008000; "><br /></span><span style="font-size: 12pt; font-family: Verdana;">&nbsp;&nbsp;&nbsp;&nbsp;UIButtonTypeRoundedRect,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">//</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">&nbsp;白色圆角矩形，类似偏好设置表格单元或者地址簿卡片&nbsp;</span><span style="color: #008000; "><br /></span><span style="font-size: 12pt; font-family: Verdana;">&nbsp;&nbsp;&nbsp;&nbsp;UIButtonTypeDetailDisclosure,&nbsp;</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">//</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">&nbsp;蓝色的披露按钮，可放在任何文字旁&nbsp;</span><span style="color: #008000; "><br /></span><span style="font-size: 12pt; font-family: Verdana;">&nbsp;&nbsp;&nbsp;&nbsp;UIButtonTypeInfoLight, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">//</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">&nbsp;微件(widget)使用的小圆圈信息按钮，可以放在任何文字旁&nbsp;</span><span style="color: #008000; "><br /></span><span style="font-size: 12pt; font-family: Verdana;">&nbsp;&nbsp;&nbsp;&nbsp;UIButtonTypeInfoDark, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">//</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">&nbsp;白色背景下使用的深色圆圈信息按钮&nbsp;</span><span style="color: #008000; "><br /></span><span style="font-size: 12pt; font-family: Verdana;">&nbsp;&nbsp;&nbsp;&nbsp;UIButtonTypeContactAdd,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">//</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">&nbsp;蓝色加号(+)按钮，可以放在任何文字旁&nbsp;</span><span style="color: #008000; "><br /></span><span style="font-size: 12pt; font-family: Verdana;">}&nbsp;UIButtonType;&nbsp;</span><br />&nbsp;<br /><span style="font-size: 12pt; font-family: Verdana;">[btn1&nbsp;setTitle:@"BTN1"&nbsp;forState:UIControlStateNormal]; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">//</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">设置按钮的标题<br />&nbsp;<br /></span><span style="font-size: 12pt; font-family: Verdana;">[btn1&nbsp;setTitle:@"高亮状态"&nbsp;forState:UIControlStateHighlighted]; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">//高亮状态按钮title值<br /></span><br /><span style="font-size: 12pt; font-family: Verdana;">[btn2&nbsp;setImage:[UIImage&nbsp;imageNamed:@"pic"]&nbsp;forState:UIControlStateNormal]; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">//</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">你也可以为按钮的某一状态设置为图&nbsp;<br /></span><span style="color: #008000; "><br /></span><span style="font-size: 12pt; font-family: Verdana;">[btn1&nbsp;setTitleColor:[UIColor&nbsp;redColor]&nbsp;forState:UIControlStateNormal]; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">//</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">设置标题颜色&nbsp;<br /></span><span style="color: #008000; "><br /></span><span style="font-size: 12pt; font-family: Verdana;">[btn1&nbsp;setTitleShadowColor:[UIColor&nbsp;grayColor]&nbsp;forState:UIControlStateNormal&nbsp;]; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">//</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">阴影&nbsp;<br /></span><span style="color: #008000; "><br /></span><span style="font-size: 12pt; font-family: Verdana;">[btn1&nbsp;setBackgroundImage:[UIImage&nbsp;imageNamed:@"PIC"]&nbsp;forState:UIControlStateHighlighted];&nbsp;&nbsp;</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">//</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">背景图像&nbsp;<br /><br /></span><span style="font-size: 12pt; font-family: Verdana;">btn1.titleLabel.font = [UIFont fontWithName：@&#8220;test&#8221; size:18]; </span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//设置按钮字体大小<br /><br /></span><span style="font-size: 12pt; font-family: Verdana;">[btn1 setTag:101] ; &nbsp;</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//设置tag值</span><br /><br /><span style="font-size: 12pt; font-family: Verdana;">btn1.layer.cornerRadius = 4.5; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">//设置圆角&#8212;&#8212;四个圆角半径</span><span style="margin: 0px; padding: 0px; border: none; background-color: #ffffff; font-family: Consolas, 'Courier New', Courier, mono, serif; font-size: 12px; line-height: 18px;">&nbsp;</span><br /><span style="font-size: 12pt; font-family: Verdana;">btn1</span><span style="font-size: 12pt; font-family: Verdana;">.layer.borderWidth = 0.5; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="font-size: 12pt; color: #008000; font-family: Verdana;">// 按钮边框宽度</span><br /><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br /><span style="font-size: 12pt; font-family: Verdana;">CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</span><span style="font-size: 12pt; color: #008000; font-family: Verdana;">// 设置颜色空间为rgb，用于生成ColorRef</span></div><div><span style="font-size: 12pt; font-family: Verdana;">CGColorRef borderColorRef = CGColorCreate(colorSpace,(CGFloat[]){ 0, 0, 0, 1 });</span><span style="font-size: 12pt; color: #008000; font-family: Verdana;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // 新建一个红色的ColorRef，用于设置边框（四个数字分别是 r, g, b, alpha）</span></div><div><span style="font-size: 12pt; font-family: Verdana;">btn1</span><span style="font-size: 12pt; font-family: Verdana;">.layer.borderColor = borderColorRef; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="font-size: 12pt; color: #008000; font-family: Verdana;">// 设置边框颜色<br /><br /></span><span style="font-size: 12pt; color: red; font-family: Verdana;">更多属性参考链接：</span><a href="http://www.cocoachina.com/wiki/index.php?title=UIButton&amp;variant=zh-cn"><span style="font-size: 12pt; font-family: Verdana;">http://www.cocoachina.com/wiki/index.php?title=UIButton&amp;variant=zh-cn</span></a></div><div></div><br /><span style="font-size: 12pt; font-family: Verdana;">参数&nbsp;forState&nbsp;.&nbsp;这个参数决定了标题、图像或其他属性将在何种状态下显现。你可以编程令按钮在那个状态变化&nbsp;</span><br /><span style="color: #0000ff; font-size: 12pt; font-family: Verdana;">enum</span><span style="font-size: 12pt; font-family: Verdana;">&nbsp;{&nbsp;</span><br /><span style="font-size: 12pt; font-family: Verdana;">&nbsp;&nbsp;&nbsp;&nbsp;UIControlStateNormal&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;0, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">//</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">&nbsp;常态&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; "><br /></span><span style="font-size: 12pt; font-family: Verdana;">&nbsp;&nbsp;&nbsp;&nbsp;UIControlStateHighlighted&nbsp;&nbsp;=&nbsp;1&nbsp;&lt;&lt;&nbsp;0, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">//</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">&nbsp;高亮&nbsp;</span><span style="color: #008000; "><br /></span><span style="font-size: 12pt; font-family: Verdana;">&nbsp;&nbsp;&nbsp;&nbsp;UIControlStateDisabled&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;1&nbsp;&lt;&lt;&nbsp;1, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">//</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">&nbsp;禁用&nbsp;</span><span style="color: #008000; "><br /></span><span style="font-size: 12pt; font-family: Verdana;">&nbsp;&nbsp;&nbsp;&nbsp;UIControlStateSelected&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;1&nbsp;&lt;&lt;&nbsp;2, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">//</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">&nbsp;选中&nbsp;</span><span style="color: #008000; "><br /></span><span style="font-size: 12pt; font-family: Verdana;">&nbsp;&nbsp;&nbsp;&nbsp;UIControlStateApplication&nbsp;&nbsp;=&nbsp;0x00FF0000, &nbsp;</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">//</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">&nbsp;当应用程序标志使用时&nbsp;</span><span style="color: #008000; "><br /></span><span style="font-size: 12pt; font-family: Verdana;">&nbsp;&nbsp;&nbsp;&nbsp;UIControlStateReserved&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;0xFF000000&nbsp;&nbsp;</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">//</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">&nbsp;为内部框架预留的&nbsp;</span><span style="color: #008000; "><br /></span><span style="font-size: 12pt; font-family: Verdana;">};&nbsp;</span><br /><span style="font-size: 12pt; font-family: Verdana;">typedef&nbsp;NSUInteger&nbsp;UIControlState;&nbsp;</span><br />&nbsp;<br /><span style="font-size: 12pt; font-family: Verdana;">你只要掌握前四种状态就好了。</span><br /><span style="font-size: 12pt; font-family: Verdana;">当按钮高亮或者禁用，UIButton&nbsp;类可以调整自己的外观，下面几个属性可以让你按照需要对按钮的外观进行微调：</span><br /><span style="font-size: 12pt; font-family: Verdana;">adjustsImageWhenHighlighted</span><br /><span style="font-size: 12pt; font-family: Verdana;">默认情况下，在按钮被禁用时，图像会被画的颜色深一些。要禁用此功能，请将这个属性设置为NO：</span><br /><span style="font-size: 12pt; font-family: Verdana;">btn1.adjustsImageWhenHighlighted&nbsp;=&nbsp;NO;&nbsp;</span><br /><br /><span style="font-size: 12pt; font-family: Verdana;">adjustsImageWhenDisabled</span><br /><span style="font-size: 12pt; font-family: Verdana;">默认情况下，按钮在被禁用时，图像会被画的颜色淡一些。要禁用此功能，请将这个属性设置为NO：</span><br /><span style="font-size: 12pt; font-family: Verdana;">btn1.adjustsImageWhenDisabled&nbsp;=&nbsp;NO;&nbsp;</span><br /><br /><span style="font-size: 12pt; font-family: Verdana;">showsTouchWhenHighlighted</span><br /><span style="font-size: 12pt; font-family: Verdana;">这个属性设置为YES，可令按钮在按下时发光。这可以用于信息按钮或者有些重要的按钮：</span><br /><span style="font-size: 12pt; font-family: Verdana;">btn1.showsTouchWhenHighlighted&nbsp;=&nbsp;YES;</span><br />&nbsp;<br /><span style="font-size: 12pt; font-family: Verdana;">显示控件</span><br /><span style="font-size: 12pt; font-family: Verdana;">[self.view&nbsp;addSubview:btn1];&nbsp;</span><br /><span style="font-size: 12pt; font-family: Verdana;">[self.view&nbsp;addSubview:btn2];&nbsp;</span><br />&nbsp;<br /><span style="font-size: 12pt; font-family: Verdana;">重写绘制行为</span><br />&nbsp;<br /><span style="font-size: 12pt; font-family: Verdana;">你可以通过子类化按钮来定制属于你自己的按钮类。在子类化的时候你可以重载下面这些方法，这些方法返回CGRect结构，指明了按钮每一组成部分的边界。</span><br /><span style="font-size: 12pt; font-family: Verdana;">注意：不要直接调用这些方法，&nbsp;这些方法是你写给系统调用的。</span><br />&nbsp;<br /><span style="font-size: 12pt; font-family: Verdana;">backgroundRectForBounds&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">//</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">指定背景边界&nbsp;</span><span style="color: #008000; "><br /></span><span style="font-size: 12pt; font-family: Verdana;">contentRectForBounds &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">//</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">&nbsp;指定内容边界&nbsp;</span><span style="color: #008000; "><br /></span><span style="font-size: 12pt; font-family: Verdana;">titleRectForContentRect &nbsp; &nbsp; &nbsp;&nbsp;</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">//</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">&nbsp;指定文字标题边界&nbsp;&nbsp;</span><span style="color: #008000; "><br /></span><span style="font-size: 12pt; font-family: Verdana;">imageRectForContentRect&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">//</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">指定按钮图像边界&nbsp;</span><span style="color: #008000; "><br /></span>&nbsp;<br /><span style="font-size: 12pt; font-family: Verdana;">例：</span><br /><span style="font-size: 12pt; font-family: Verdana;">-&nbsp;(CGRect)imageRectForContentRect:(CGRect)bounds</span><br /><span style="font-size: 12pt; font-family: Verdana;">{&nbsp;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000ff; font-size: 12pt; font-family: Verdana;">return</span><span style="font-size: 12pt; font-family: Verdana;">&nbsp;CGRectMake(0.0,&nbsp;0.0,&nbsp;44,&nbsp;44);&nbsp;</span><br /><span style="font-size: 12pt; font-family: Verdana;">}&nbsp;</span><br />&nbsp;<br /><span style="font-size: 12pt; font-family: Verdana;">[btn1&nbsp;addTarget:self&nbsp;action:@selector(btnPressed:)&nbsp;forControlEvents:UIControlEventTouchUpInside];</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">//</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">添加点击按钮事件</span><span style="color: #008000; "><br /></span>&nbsp;<br /><span style="font-size: 12pt; font-family: Verdana;">-(</span><span style="color: #0000ff; font-size: 12pt; font-family: Verdana;">void</span><span style="font-size: 12pt; font-family: Verdana;">)btnPressed:(id)sender</span><br /><span style="font-size: 12pt; font-family: Verdana;">{&nbsp;&nbsp;</span><br /><span style="font-size: 12pt; font-family: Verdana;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UIButton*&nbsp;btn&nbsp;=&nbsp;(UIButton*)sender;&nbsp;&nbsp;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; font-size: 12pt; font-family: Verdana;">//</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">开始写你自己的动作&nbsp;</span><span style="color: #008000; "><br /></span><span style="font-size: 12pt; font-family: Verdana;">}</span><br /><br /><span style="font-size: 12pt; font-family: Verdana;">forControlEvents参数类型</span><br /><span style="font-size: 12pt; font-family: Verdana;">&nbsp;typedef&nbsp;NS_OPTIONS(NSUInteger,&nbsp;UIControlEvents)&nbsp;</span><br /><span style="font-size: 12pt; font-family: Verdana;">{</span><br /><span style="font-size: 12pt; font-family: Verdana;">&nbsp; &nbsp; UIControlEventTouchDown &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =&nbsp;1&nbsp;&lt;&lt;&nbsp;&nbsp;0,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">//</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">&nbsp;单点触摸按下事件：用户点触屏幕，或者又有新手指落下的时候。<br /></span><span style="font-size: 12pt; font-family: Verdana;">&nbsp; &nbsp; UIControlEventTouchDownRepeat &nbsp; &nbsp; &nbsp;=&nbsp;1&nbsp;&lt;&lt;&nbsp;&nbsp;1,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">//</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">&nbsp;多点触摸按下事件，点触计数大于1：用户按下第二、三、或第四根手指的时候。</span><span style="color: #008000; "><br /></span><span style="font-size: 12pt; font-family: Verdana;">&nbsp;&nbsp;&nbsp;&nbsp;UIControlEventTouchDragInside &nbsp; &nbsp; &nbsp; &nbsp; =&nbsp;1&nbsp;&lt;&lt;&nbsp;&nbsp;2,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">//</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">&nbsp;当一次触摸在控件窗口内拖动时。</span><span style="color: #008000; "><br /></span><span style="font-size: 12pt; font-family: Verdana;">&nbsp;&nbsp;&nbsp;&nbsp;UIControlEventTouchDragOutside &nbsp; &nbsp; &nbsp; =&nbsp;1&nbsp;&lt;&lt;&nbsp;&nbsp;3,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">//</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">&nbsp;当一次触摸在控件窗口之外拖动时。</span><span style="color: #008000; "><br /></span><span style="font-size: 12pt; font-family: Verdana;">&nbsp;&nbsp;&nbsp;&nbsp;UIControlEventTouchDragEnter &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =&nbsp;1&nbsp;&lt;&lt;&nbsp;&nbsp;4,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">//</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">&nbsp;当一次触摸从控件窗口之外拖动到内部时</span><span style="color: #008000; "><br /></span><span style="font-size: 12pt; font-family: Verdana;">&nbsp;&nbsp;&nbsp;&nbsp;UIControlEventTouchDragExit &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;=&nbsp;1&nbsp;&lt;&lt;&nbsp;&nbsp;5,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">//</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">&nbsp;当一次触摸从控件窗口内部拖动到外部时。</span><span style="color: #008000; "><br /></span><span style="font-size: 12pt; font-family: Verdana;">&nbsp;&nbsp;&nbsp;&nbsp;UIControlEventTouchUpInside &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;=&nbsp;1&nbsp;&lt;&lt;&nbsp;&nbsp;6,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">//</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">&nbsp;所有在控件之内触摸抬起事件</span><span style="color: #008000; "><br /></span><span style="font-size: 12pt; font-family: Verdana;">&nbsp;&nbsp;&nbsp;&nbsp;UIControlEventTouchUpOutside &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;=&nbsp;1&nbsp;&lt;&lt;&nbsp;&nbsp;7,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">//</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">&nbsp;所有在控件之外触摸抬起事件(点触必须开始与控件内部才会发送通知)。</span><span style="color: #008000; "><br /></span><span style="font-size: 12pt; font-family: Verdana;">&nbsp;&nbsp;&nbsp;&nbsp;UIControlEventTouchCancel &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;=&nbsp;1&nbsp;&lt;&lt;&nbsp;&nbsp;8,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">//</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">所有触摸取消事件，即一次触摸因为放上了太多手指而被取消，或者被上锁或者电话呼叫打断。</span><span style="color: #008000; "><br /></span><br /><span style="font-size: 12pt; font-family: Verdana;">&nbsp;&nbsp;&nbsp;&nbsp;UIControlEventValueChanged &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;=&nbsp;1&nbsp;&lt;&lt;&nbsp;12,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">//</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">&nbsp;当控件的值发生改变时，发送通知。用于滑块、分段控件、以及其他取值的控件。你可以配置滑块控件何时发送通知，在滑块被放下时发送，或者在被拖动时发送。</span><span style="color: #008000; "><br /></span><br /><span style="font-size: 12pt; font-family: Verdana;">&nbsp;&nbsp;&nbsp;&nbsp;UIControlEventEditingDidBegin &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;=&nbsp;1&nbsp;&lt;&lt;&nbsp;16,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">//</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">&nbsp;当文本控件中开始编辑时发送通知</span><span style="color: #008000; "><br /></span><span style="font-size: 12pt; font-family: Verdana;">&nbsp;&nbsp;&nbsp;&nbsp;UIControlEventEditingChanged &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;=&nbsp;1&nbsp;&lt;&lt;&nbsp;17,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">//</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">&nbsp;当文本控件中的文本被改变时发送通知。</span><span style="color: #008000; "><br /></span><span style="font-size: 12pt; font-family: Verdana;">&nbsp;&nbsp;&nbsp;&nbsp;UIControlEventEditingDidEnd &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;=&nbsp;1&nbsp;&lt;&lt;&nbsp;18,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">//</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">&nbsp;当文本控件中编辑结束时发送通知。</span><span style="color: #008000; "><br /></span><span style="font-size: 12pt; font-family: Verdana;">&nbsp;&nbsp;&nbsp;&nbsp;UIControlEventEditingDidEndOnExit &nbsp; &nbsp;=&nbsp;1&nbsp;&lt;&lt;&nbsp;19,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">//</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">&nbsp;当文本控件内通过按下回车键（或等价行为）结束编辑时，发送通知。</span><span style="color: #008000; "><br /></span><br /><span style="font-size: 12pt; font-family: Verdana;">&nbsp;&nbsp;&nbsp;&nbsp;UIControlEventAllTouchEvents &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;=&nbsp;0x00000FFF,&nbsp;&nbsp;</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">//</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">&nbsp;通知所有触摸事件。</span><span style="color: #008000; "><br /></span><span style="font-size: 12pt; font-family: Verdana;">&nbsp;&nbsp;&nbsp;&nbsp;UIControlEventAllEditingEvents &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;=&nbsp;0x000F0000,&nbsp;&nbsp;</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">//</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">&nbsp;通知所有关于文本编辑的事件。</span><span style="color: #008000; "><br /></span><span style="font-size: 12pt; font-family: Verdana;">&nbsp;&nbsp;&nbsp;&nbsp;UIControlEventApplicationReserved &nbsp; &nbsp;=&nbsp;0x0F000000,&nbsp;&nbsp;</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">//</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">&nbsp;range&nbsp;available&nbsp;for&nbsp;application&nbsp;use</span><span style="color: #008000; "><br /></span><span style="font-size: 12pt; font-family: Verdana;">&nbsp;&nbsp;&nbsp;&nbsp;UIControlEventSystemReserved &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;=&nbsp;0xF0000000,&nbsp;&nbsp;</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">//</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">&nbsp;range&nbsp;reserved&nbsp;for&nbsp;internal&nbsp;framework&nbsp;use</span><span style="color: #008000; "><br /></span><span style="font-size: 12pt; font-family: Verdana;">&nbsp;&nbsp;&nbsp;&nbsp;UIControlEventAllEvents &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;=&nbsp;0xFFFFFFFF&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">//</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">&nbsp;通知所有事件</span><span style="color: #008000; "><br /></span><span style="font-size: 12pt; font-family: Verdana;">};&nbsp;</span></div><img src ="http://www.cppblog.com/wanghaiguang/aggbug/207650.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wanghaiguang/" target="_blank">王海光</a> 2014-07-15 13:37 <a href="http://www.cppblog.com/wanghaiguang/archive/2014/07/15/207650.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>iOS UITextField笔记</title><link>http://www.cppblog.com/wanghaiguang/archive/2014/07/15/207649.html</link><dc:creator>王海光</dc:creator><author>王海光</author><pubDate>Tue, 15 Jul 2014 03:02:00 GMT</pubDate><guid>http://www.cppblog.com/wanghaiguang/archive/2014/07/15/207649.html</guid><wfw:comment>http://www.cppblog.com/wanghaiguang/comments/207649.html</wfw:comment><comments>http://www.cppblog.com/wanghaiguang/archive/2014/07/15/207649.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wanghaiguang/comments/commentRss/207649.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wanghaiguang/services/trackbacks/207649.html</trackback:ping><description><![CDATA[<div style="margin: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 24px;"><div style="margin: 0px;"><div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008000; ">//</span><span style="color: #008000; ">手动定义一个UITextField&nbsp;及其基本的属性：</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;UITextField&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">text&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;[[UITextField&nbsp;alloc]initWithFrame:CGRectMake(</span><span style="color: #000000; ">20</span><span style="color: #000000; ">,&nbsp;</span><span style="color: #000000; ">20</span><span style="color: #000000; ">,&nbsp;</span><span style="color: #000000; ">130</span><span style="color: #000000; ">,&nbsp;</span><span style="color: #000000; ">30</span><span style="color: #000000; ">)];<br />&nbsp;<br /></span><span style="color: #008000; ">//</span><span style="color: #008000; ">设置边框样式，只有设置了才会显示边框样式　</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">text.borderStyle&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;UITextBorderStyleRoundedRect;<br />typedef&nbsp;</span><span style="color: #0000FF; ">enum</span><span style="color: #000000; ">&nbsp;<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;UITextBorderStyleNone,&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;UITextBorderStyleLine,<br />&nbsp;&nbsp;&nbsp;&nbsp;UITextBorderStyleBezel,<br />&nbsp;&nbsp;&nbsp;&nbsp;UITextBorderStyleRoundedRect&nbsp;&nbsp;<br />&nbsp;&nbsp;}&nbsp;UITextBorderStyle;<br />　<br />text.backgroundColor&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;[UIColor&nbsp;whiteColor]; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">设置输入框的背景颜色，此时设置为白色&nbsp;如果使用了自定义的背景图片边框会被忽略掉　</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">text.background&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;[UIImage&nbsp;imageNamed:</span><span style="color: #000000; ">@"</span><span style="color: #000000; ">dd.png</span><span style="color: #000000; ">"</span><span style="color: #000000; ">]; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">设置背景</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">text.disabledBackground&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;[UIImage&nbsp;imageNamed:</span><span style="color: #000000; ">@"</span><span style="color: #000000; ">cc.png</span><span style="color: #000000; ">"</span><span style="color: #000000; ">];&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">设置背景</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">text.placeholder&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">@"</span><span style="color: #000000; ">password</span><span style="color: #000000; ">"</span><span style="color: #000000; ">; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">当输入框没有内容时，水印提示&nbsp;提示内容为password</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">text.font&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;[UIFont&nbsp;fontWithName:</span><span style="color: #000000; ">@"</span><span style="color: #000000; ">Arial</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;size:</span><span style="color: #000000; ">20.0f</span><span style="color: #000000; ">]; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">设置输入框内容的字体样式和大小</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">text.textColor&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;[UIColor&nbsp;redColor]; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">设置字体颜色</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">text.clearButtonMode&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;UITextFieldViewModeAlways; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">输入框中是否有个叉号，在什么时候显示，用于一次性删除输入框中的内容</span><span style="color: #008000; "><br /></span><span style="color: #000000; "><br />typedef&nbsp;</span><span style="color: #0000FF; ">enum</span><span style="color: #000000; ">&nbsp;<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;UITextFieldViewModeNever,　 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</span><span style="color: #008000;">//重不出现</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;UITextFieldViewModeWhileEditing, &nbsp; &nbsp;</span><span style="color: #008000;">//编辑时出现</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;UITextFieldViewModeUnlessEditing, &nbsp;</span><span style="color: #008000;">// 除了编辑外都出现</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;UITextFieldViewModeAlways&nbsp;　 &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</span><span style="color: #008000;">//一直出现&nbsp;</span><span style="color: #000000; "><br />}&nbsp;UITextFieldViewMode;<br /></span><span style="color: #008000; "><br /></span><span style="color: #000000;">text.text&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">@"</span><span style="color: #000000;">一开始就在输入框的文字</span><span style="color: #000000;">"</span><span style="color: #000000;">;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">输入框中一开始就有的文字</span><br /><span style="color: #000000; ">text.secureTextEntry&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;YES; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">每输入一个字符就变成点&nbsp;用语密码输入</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">text.autocorrectionType&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;UITextAutocorrectionTypeNo;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">是否纠错</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;<br /></span><span>typedef&nbsp;</span><span>enum</span><span>&nbsp;<br />{</span><span style="color: #008000;"><br /></span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span>UITextAutocorrectionTypeDefault, &nbsp;</span><span style="color: #008000;">// 默认<br /></span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span>UITextAutocorrectionTypeNo,</span><span style="color: #008000;">&nbsp;　 &nbsp; &nbsp; //不自动纠错<br /></span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span>UITextAutocorrectionTypeYes,</span><span style="color: #008000;">　 &nbsp; &nbsp; //自动纠错<br /></span><span>}&nbsp;UITextAutocorrectionType;</span><span style="color: #008000;"><br /></span><span style="color: #008000;"><br /></span><span style="color: #000000;">text.clearsOnBeginEditing&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;YES; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">再次编辑就清空</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">text.textAlignment&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;UITextAlignmentLeft; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">内容对齐方式</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">text.contentVerticalAlignment&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;UIControlContentVerticalAlignmentCenter;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">内容的垂直对齐方式&nbsp;&nbsp;UITextField继承自UIControl,此类中有一个属性contentVerticalAlignment</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">textFied.adjustsFontSizeToFitWidth&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;YES; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">设置为YES时文本会自动缩小以适应文本窗口大小.默认是保持原来大小,而让长文本滚动　</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">text.minimumFontSize&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">20</span><span style="color: #000000; ">; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">设置自动缩小显示的最小字体大小</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">text.keyboardType&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;UIKeyboardTypeNumberPad;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">设置键盘的样式</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;<br />typedef&nbsp;</span><span style="color: #0000FF; ">enum</span><span style="color: #000000; ">&nbsp;<br />{<br /></span><span>&nbsp;&nbsp;&nbsp;&nbsp;UIKeyboardTypeDefault,&nbsp;&nbsp;</span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;　 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 默认键盘，支持所有字符<br /></span><span>&nbsp;&nbsp;&nbsp;&nbsp;UIKeyboardTypeASCIICapable,　</span><span style="color: #008000;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 支持ASCII的默认键盘<br /></span><span>&nbsp;&nbsp;&nbsp;&nbsp;UIKeyboardTypeNumbersAndPunctuation,</span><span style="color: #008000;">　标准电话键盘，支持＋＊＃字符<br /></span><span>&nbsp;&nbsp;&nbsp;&nbsp;UIKeyboardTypeURL, </span><span style="color: #008000;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;URL键盘，支持.com按钮&nbsp;只支持URL字符<br /></span><span>UIKeyboardTypeNumberPad,</span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;　 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 数字键盘<br /></span><span>UIKeyboardTypePhonePad,</span><span style="color: #008000;">　&nbsp;　 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 电话键盘<br /></span><span>&nbsp;&nbsp;&nbsp;&nbsp;UIKeyboardTypeNamePhonePad,</span><span style="color: #008000;">&nbsp;　 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 电话键盘，也支持输入人名<br /></span><span>UIKeyboardTypeEmailAddress,&nbsp;</span><span style="color: #008000;">　 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 用于输入电子&nbsp;邮件地址的键盘&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span>UIKeyboardTypeDecimalPad,</span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;　 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;数字键盘&nbsp;有数字和小数点<br /></span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;</span><span>&nbsp;UIKeyboardTypeTwitter,&nbsp;</span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;　 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;优化的键盘，方便输入@、#字符</span><span style="color: #008000;"><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span>UIKeyboardTypeAlphabet&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;UIKeyboardTypeASCIICapable,&nbsp;<br />}&nbsp;UIKeyboardType;<br />&nbsp;<br />text.autocapitalizationType&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;UITextAutocapitalizationTypeNone;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">首字母是否大写</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;<br />typedef&nbsp;</span><span style="color: #0000FF; ">enum</span><span style="color: #000000; ">&nbsp;<br />{<br /></span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span>UITextAutocapitalizationTypeNone,</span><span style="color: #008000;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;不自动大写<br /></span><span style="color: #008000;">&nbsp;</span><span>&nbsp;&nbsp;&nbsp;UITextAutocapitalizationTypeWords,</span><span style="color: #008000;">　 &nbsp; &nbsp; &nbsp; &nbsp; 单词首字母大写<br /></span><span style="color: #008000;">&nbsp;&nbsp;</span><span>&nbsp;&nbsp;UITextAutocapitalizationTypeSentences,</span><span style="color: #008000;">　 &nbsp; 句子的首字母大写<br /></span><span style="color: #008000;">&nbsp;</span><span>&nbsp;&nbsp;&nbsp;UITextAutocapitalizationTypeAllCharacters,</span><span style="color: #008000;"> &nbsp;所有字母都大写&nbsp;</span><span style="color: #008000;"><br /></span><span>}&nbsp;UITextAutocapitalizationType;</span><span style="color: #008000;"><br /></span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000;">text.returnKeyType&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">UIReturnKeyDone;</span><span style="color: #008000;">//</span><span style="color: #008000;">return键变成什么键</span><br /><span style="color: #000000; ">typedef&nbsp;</span><span style="color: #0000FF; ">enum</span><span style="color: #000000; ">&nbsp;<br />{<br /></span><span>&nbsp;&nbsp;&nbsp;&nbsp;UIReturnKeyDefault,</span><span style="color: #008000;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;默认&nbsp;灰色按钮，标有Return<br /></span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span>UIReturnKeyGo,&nbsp;</span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;　 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;标有Go的蓝色按钮<br /></span><span>&nbsp;&nbsp;&nbsp;&nbsp;UIReturnKeyGoogle, </span><span style="color: #008000;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;标有Google的蓝色按钮，用语搜索<br /></span><span>&nbsp;&nbsp;&nbsp;&nbsp;UIReturnKeyJoin,</span><span style="color: #008000;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 标有Join的蓝色按钮<br /></span><span>&nbsp;&nbsp;&nbsp;&nbsp;UIReturnKeyNext, </span><span style="color: #008000;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;标有Next的蓝色按钮<br /></span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;</span><span>&nbsp;UIReturnKeyRoute, </span><span style="color: #008000;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;标有Route的蓝色按钮<br /></span><span style="color: #008000;">&nbsp;&nbsp;</span><span>&nbsp;&nbsp;UIReturnKeySearch,</span><span style="color: #008000;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;标有Search的蓝色按钮<br /></span><span>&nbsp;&nbsp;&nbsp;&nbsp;UIReturnKeySend, </span><span style="color: #008000;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 标有Send的蓝色按钮<br /></span><span>&nbsp;&nbsp;&nbsp;&nbsp;UIReturnKeyYahoo,</span><span style="color: #008000;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 标有Yahoo的蓝色按钮<br /></span><span>&nbsp;&nbsp;&nbsp;&nbsp;UIReturnKeyYahoo,</span><span style="color: #008000;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 标有Yahoo的蓝色按钮<br /></span><span>&nbsp;&nbsp;&nbsp;&nbsp;UIReturnKeyEmergencyCall, </span><span style="color: #008000;">&nbsp;紧急呼叫按钮&nbsp;</span><span style="color: #008000;"><br /></span><span>}&nbsp;UIReturnKeyType;<br /></span><span style="color: #008000;"><br /></span><span style="color: #000000;">textView.keyboardAppearance</span><span style="color: #000000;">=</span><span style="color: #000000;">UIKeyboardAppearanceDefault；</span><span style="color: #008000;">//</span><span style="color: #008000;">键盘外观</span><br /><span style="color: #000000; ">typedef&nbsp;</span><span style="color: #0000FF; ">enum</span><span style="color: #000000; ">&nbsp;<br />{<br /></span><span>UIKeyboardAppearanceDefault，</span><span style="color: #008000;"> &nbsp; 默认外观，浅灰色<br /></span><span>UIKeyboardAppearanceAlert，</span><span style="color: #008000;">　&nbsp;　深灰&nbsp;石墨色</span><span style="color: #008000;"><br /></span><span>}&nbsp;UIReturnKeyType;</span><span style="color: #008000;"><br /><br /></span><span style="color: #000000;">text.</span><span style="color: #0000ff;">delegate</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;self;</span><span style="color: #008000;">//</span><span style="color: #008000;">设置代理&nbsp;用于实现协议</span><br /><span style="color: #000000; ">[self.window&nbsp;addSubview:text];</span><span style="color: #008000; ">//</span><span style="color: #008000; ">把textfield加到视图中<br />&nbsp;<br /></span><span style="color: #008000; ">//</span><span style="color: #008000; ">最右侧加图片是以下代码　&nbsp;左侧类似</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;UIImageView&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">image</span><span style="color: #000000; ">=</span><span style="color: #000000; ">[[UIImageView&nbsp;alloc]&nbsp;initWithImage:[UIImage&nbsp;imageNamed:</span><span style="color: #000000; ">@"</span><span style="color: #000000; ">right.png</span><span style="color: #000000; ">"</span><span style="color: #000000; ">]];<br />&nbsp;text.rightView</span><span style="color: #000000; ">=</span><span style="color: #000000; ">image;<br />&nbsp;text.rightViewMode&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;UITextFieldViewModeAlways;&nbsp;<br />&nbsp;<br />typedef&nbsp;</span><span style="color: #0000FF; ">enum</span><span style="color: #000000; ">&nbsp;<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;UITextFieldViewModeNever,<br />&nbsp;&nbsp;&nbsp;&nbsp;UITextFieldViewModeWhileEditing,<br />&nbsp;&nbsp;&nbsp;&nbsp;UITextFieldViewModeUnlessEditing,<br />&nbsp;&nbsp;&nbsp;&nbsp;UITextFieldViewModeAlways<br />}&nbsp;UITextFieldViewMode;<br />&nbsp;<br /></span><span style="color: #008000; ">//</span><span style="color: #008000; ">按return键键盘往下收&nbsp;&nbsp;becomeFirstResponder</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;<br />类要采用UITextFieldDelegate协议<br />text.</span><span style="color: #0000FF; ">delegate</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;self;　声明text的代理是我，我会去实现把键盘往下收的方法&nbsp;这个方法在UITextFieldDelegate里所以我们要采用UITextFieldDelegate这个协议<br />&nbsp;<br /></span><span style="color: #000000; ">-</span><span style="color: #000000; ">&nbsp;(BOOL)textFieldShouldReturn:(UITextField&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">)textField<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;[text&nbsp;resignFirstResponder];&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">主要是[receiver&nbsp;resignFirstResponder]在哪调用就能把receiver对应的键盘往下收</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;YES;<br />}<br />重写绘制行为<br />除了UITextField对象的风格选项，你还可以定制化UITextField对象，为他添加许多不同的重写方法，来改变文本字段的显示行为。这些方法都会返回一个CGRect结构，制定了文本字段每个部件的边界范围。以下方法都可以重写。<br />&nbsp;<br />&#8211;&nbsp;textRectForBounds:　　&nbsp;&nbsp;　 &nbsp; &nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">重写来重置文字区域</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&#8211;&nbsp;drawTextInRect:　　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;　 &nbsp; &nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">改变绘文字属性.重写时调用super可以按默认图形属性绘制,若自己完全重写绘制函数，就不用调用super了.</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&#8211;&nbsp;placeholderRectForBounds: &nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">重写来重置占位符区域</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&#8211;&nbsp;drawPlaceholderInRect:　　 &nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">重写改变绘制占位符属性.重写时调用super可以按默认图形属性绘制,若自己完全重写绘制函数，就不用调用super了.</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&#8211;&nbsp;borderRectForBounds:　　 &nbsp; &nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">重写来重置边缘区域</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&#8211;&nbsp;editingRectForBounds:　　 &nbsp; &nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">重写来重置编辑区域</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&#8211;&nbsp;clearButtonRectForBounds:　</span><span style="color: #008000; ">//</span><span style="color: #008000; ">重写来重置clearButton位置,改变size可能导致button的图片失真</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&#8211;&nbsp;leftViewRectForBounds:<br />&#8211;&nbsp;rightViewRectForBounds:<br />&nbsp;<br />委托方法<br /></span><span style="color: #000000; ">-</span><span style="color: #000000; ">&nbsp;(BOOL)textFieldShouldBeginEditing:(UITextField&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">)textField<br />{　　　<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">返回一个BOOL值，指定是否循序文本字段开始编辑　　</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;YES;　<br />}　<br />&nbsp;<br /></span><span style="color: #000000; ">-</span><span style="color: #000000; ">&nbsp;(</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">)textFieldDidBeginEditing:(UITextField&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">)textField<br />{　<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">开始编辑时触发，文本字段将成为first&nbsp;responder　</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">}　<br />&nbsp;<br /></span><span style="color: #000000; ">-</span><span style="color: #000000; ">&nbsp;(BOOL)textFieldShouldEndEditing:(UITextField&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">)textField<br />{　<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">返回BOOL值，指定是否允许文本字段结束编辑，当编辑结束，文本字段会让出first&nbsp;responder　<br />　&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">要想在用户结束编辑时阻止文本字段消失，可以返回NO　<br />　&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">这对一些文本字段必须始终保持活跃状态的程序很有用，比如即时消息　</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">　&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;NO;　<br />}　<br />&nbsp;<br /></span><span style="color: #000000; ">-</span><span style="color: #000000; ">&nbsp;(BOOL)textField:(UITextField</span><span style="color: #000000; ">*</span><span style="color: #000000; ">)textField&nbsp;shouldChangeCharactersInRange:(NSRange)range&nbsp;replacementString:(NSString&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">)</span><span style="color: #0000FF; ">string</span><span style="color: #000000; "><br />{　<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">当用户使用自动更正功能，把输入的文字修改为推荐的文字时，就会调用这个方法。　<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">这对于想要加入撤销选项的应用程序特别有用　<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">可以跟踪字段内所做的最后一次修改，也可以对所有编辑做日志记录,用作审计用途。　　&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">要防止文字被改变可以返回NO　<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">这个方法的参数中有一个NSRange对象，指明了被改变文字的位置，建议修改的文本也在其中　</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;<br />　&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;YES;　<br />}　<br />&nbsp;<br /></span><span style="color: #000000; ">-</span><span style="color: #000000; ">&nbsp;(BOOL)textFieldShouldClear:(UITextField&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">)textField<br />{　<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">返回一个BOOL值指明是否允许根据用户请求清除内容　<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">可以设置在特定条件下才允许清除内容　</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;<br />　&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;YES;　<br />}　<br />&nbsp;<br /></span><span style="color: #000000; ">-</span><span style="color: #000000; ">(BOOL)textFieldShouldReturn:(UITextField&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">)textField<br />{　<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">返回一个BOOL值，指明是否允许在按下回车键时结束编辑　<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">如果允许要调用resignFirstResponder&nbsp;方法，这回导致结束编辑，而键盘会被收起[textField&nbsp;resignFirstResponder];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">查一下resign这个单词的意思就明白这个方法了　</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">　&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;YES;　<br />}　<br />&nbsp;<br />通知<br />UITextField派生自UIControl，所以UIControl类中的通知系统在文本字段中也可以使用。除了UIControl类的标准事件，你还可以使用下列UITextField类特有的事件<br />&nbsp;<br />UITextFieldTextDidBeginEditingNotification<br />UITextFieldTextDidChangeNotification<br />UITextFieldTextDidEndEditingNotification<br />当文本字段退出编辑模式时触发。通知的object属性存储了最终文本。<br />&nbsp;<br />因为文本字段要使用键盘输入文字，所以下面这些事件发生时，也会发送动作通知<br />UIKeyboardWillShowNotification&nbsp;　</span><span style="color: #008000; ">//</span><span style="color: #008000; ">键盘显示之前发送</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">UIKeyboardDidShowNotification&nbsp;&nbsp;　</span><span style="color: #008000; ">//</span><span style="color: #008000; ">键盘显示之后发送</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">UIKeyboardWillHideNotification&nbsp;　 &nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">键盘隐藏之前发送</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">UIKeyboardDidHideNotification&nbsp;&nbsp;　&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">键盘隐藏之后发送</span></div></div><div style="margin: 0px; text-align: center;"><img src="http://img10.3lian.com/edu121201/e/ios/201211/c000f335bfdf9251241ccd1056f1ee22.png" alt="" data-bd-imgshare-binded="1" style="margin: 0px; padding: 1px; border: 1px solid #cccccc;" /></div><div style="margin: 0px;">1、Text&nbsp;：设置文本框的默认文本。</div><div style="margin: 0px;">2、Placeholder&nbsp;：&nbsp;可以在文本框中显示灰色的字，用于提示用户应该在这个文本框输入什么内容。当这个文本框中输入了数据时，用于提示的灰色的字将会自动消失。</div></div><div style="margin: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 24px;">3、Background&nbsp;：</div><div style="margin: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 24px;">4、Disabled&nbsp;：&nbsp;若选中此项，用户将不能更改文本框内容。</div><div style="margin: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 24px;">5、接下来是三个按钮，用来设置对齐方式。</div><div style="margin: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 24px;">6、Border Style&nbsp;：&nbsp;选择边界风格。</div><div style="margin: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 24px;">7、Clear Button&nbsp;：&nbsp;这是一个下拉菜单，你可以选择清除按钮什么时候出现，所谓清除按钮就是出一个现在文本框右边的小&nbsp;X&nbsp;，你可以有以下选择：</div><div style="margin: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 24px;">&nbsp; &nbsp; 7.1 Never appears&nbsp;：&nbsp;从不出现</div><div style="margin: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 24px;">&nbsp; &nbsp; 7.2 Appears while editing&nbsp;：&nbsp;编辑时出现</div><div style="margin: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 24px;">&nbsp; &nbsp; 7.3 Appears unless editing&nbsp;：&nbsp;</div><div style="margin: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 24px;">&nbsp; &nbsp; 7.4 Is always visible&nbsp;：&nbsp;总是可见</div><div style="margin: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 24px;">8、Clear when editing begins&nbsp;：&nbsp;若选中此项，则当开始编辑这个文本框时，文本框中之前的内容会被清除掉。比如，你现在这个文本框&nbsp;A&nbsp;中输入了&nbsp;"What"&nbsp;，之后去编辑文本框&nbsp;B，若再回来编辑文本框&nbsp;A&nbsp;，则其中的&nbsp;"What"&nbsp;会被立即清除。</div><div style="margin: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 24px;">9、Text Color&nbsp;：&nbsp;设置文本框中文本的颜色。</div><div style="margin: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 24px;">10、Font&nbsp;：&nbsp;设置文本的字体与字号。</div><div style="margin: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 24px;">11、Min Font Size&nbsp;：&nbsp;设置文本框可以显示的最小字体（不过我感觉没什么用）</div><div style="margin: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 24px;">12、Adjust To Fit&nbsp;：&nbsp;指定当文本框尺寸减小时，文本框中的文本是否也要缩小。选择它，可以使得全部文本都可见，即使文本很长。但是这个选项要跟&nbsp;Min Font Size&nbsp;配合使用，文本再缩小，也不会小于设定的&nbsp;Min Font Size&nbsp;。</div><div style="margin: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 24px;">接下来的部分用于设置键盘如何显示。</div><div style="margin: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 24px;">13、Captitalization&nbsp;：&nbsp;设置大写。下拉菜单中有四个选项：</div><div style="margin: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 24px;">&nbsp; &nbsp; 13.1 None&nbsp;：&nbsp;不设置大写</div><div style="margin: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 24px;">&nbsp; &nbsp; 13.2 Words&nbsp;：&nbsp;每个单词首字母大写，这里的单词指的是以空格分开的字符串</div><div style="margin: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 24px;">&nbsp; &nbsp; 13.3 Sentances&nbsp;：&nbsp;每个句子的第一个字母大写，这里的句子是以句号加空格分开的字符串</div><div style="margin: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 24px;">&nbsp; &nbsp; 13.4 All Characters&nbsp;：&nbsp;所以字母大写</div><div style="margin: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 24px;">14、Correction&nbsp;：&nbsp;检查拼写，默认是&nbsp;YES&nbsp;。</div><div style="margin: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 24px;">15、Keyboard&nbsp;：&nbsp;选择键盘类型，比如全数字、字母和数字等。</div><div style="margin: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 24px;">16、Appearance：</div><div style="margin: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 24px;">17、Return Key&nbsp;：&nbsp;选择返回键，可以选择&nbsp;Search&nbsp;、&nbsp;Return&nbsp;、&nbsp;Done&nbsp;等。</div><div style="margin: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 24px;">18、Auto-enable Return Key&nbsp;：&nbsp;如选择此项，则只有至少在文本框输入一个字符后键盘的返回键才有效。</div><div style="margin: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 24px;">19、Secure&nbsp;：&nbsp;当你的文本框用作密码输入框时，可以选择这个选项，此时，字符显示为星号。</div><div style="margin: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 24px; text-align: center;"><img src="http://img10.3lian.com/edu121201/e/ios/201211/99c2fb45bbe9e91db9def37414bdce52.png" alt="" data-bd-imgshare-binded="1" style="margin: 0px; padding: 1px; border: 1px solid #cccccc;" /></div><div style="margin: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 24px; text-align: center;">&nbsp;</div><div style="margin: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 24px;">1.Alignment Horizontal&nbsp;水平对齐方式</div><div style="margin: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 24px;">2.Alignment Vertical&nbsp;垂直对齐方式</div><div style="margin: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 24px;">3.用于返回一个BOOL值　输入框是否&nbsp;Selected(选中) Enabled(可用) Highlighted(高亮)</div><div style="margin: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 24px;">&nbsp;</div><div style="margin: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 24px;">限制只能输入特定的字符</div><div style="margin: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 24px;"><div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">(BOOL)textField:(UITextField&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">)textField&nbsp;shouldChangeCharactersInRange:(NSRange)range&nbsp;replacementString:(NSString&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">)</span><span style="color: #0000FF; ">string<br /></span><span style="color: #000000; ">{<br />&nbsp;&nbsp;&nbsp;&nbsp;NSCharacterSet&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">cs;<br />&nbsp;&nbsp;&nbsp;&nbsp;cs&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;[[NSCharacterSet&nbsp;characterSetWithCharactersInString:NUMBERS]invertedSet];<br />&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;NSString&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">filtered&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;[[</span><span style="color: #0000FF; ">string</span><span style="color: #000000; ">&nbsp;componentsSeparatedByCharactersInSet:cs]componentsJoinedByString:</span><span style="color: #000000; ">@""</span><span style="color: #000000; ">];&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">按cs分离出数组,数组按@""分离出字符串</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;BOOL&nbsp;canChange&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;[</span><span style="color: #0000FF; ">string</span><span style="color: #000000; ">&nbsp;isEqualToString:filtered];<br />&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;canChange;<br />}</span></div></div><div style="margin: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 24px;">&nbsp;</div><div style="margin: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 24px;">上面那个NUMBERS是一个宏，可以在文件顶部定义：</div><div style="margin: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 24px;">#define NUMBERS @&#8221;0123456789n&#8221;&nbsp;（这个代表可以输入数字和换行，请注意这个n，如果不写这个，Done按键将不会触发，如果用在SearchBar中，将会不触发Search事件，因为你自己限制不让输入n，好惨，我在项目中才发现的。）</div><div style="margin: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 24px;">所以，如果你要限制输入英文和数字的话，就可以把这个定义为：</div><div style="margin: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 24px;">#define kAlphaNum &nbsp; @&#8221;ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789&#8243;。</div><div style="margin: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 24px;">当然，你还可以在以上方法return之前，做一提示的，比如提示用户只能输入数字之类的。如果你觉得有需要的话。</div><div style="margin: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 24px;">&nbsp;</div><div style="margin: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 24px;">限制只能输入一定长度的字符</div><div style="margin: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 24px;"><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">-</span><span style="color: #000000; ">&nbsp;(BOOL)textField:(UITextField&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">)textField&nbsp;shouldChangeCharactersInRange:(NSRange)range&nbsp;replacementString:(NSString&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">)</span><span style="color: #0000FF; ">string</span><span style="color: #000000; ">;&nbsp;<br />{　<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">string就是此时输入的那个字符&nbsp;textField就是此时正在输入的那个输入框&nbsp;返回YES就是可以改变输入框的值&nbsp;NO相反</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;([</span><span style="color: #0000FF; ">string</span><span style="color: #000000; ">&nbsp;isEqualToString:</span><span style="color: #000000; ">@"</span><span style="color: #000000; ">n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">])　</span><span style="color: #008000; ">//</span><span style="color: #008000; ">按会车可以改变</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;YES;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NSString&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">&nbsp;toBeString&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;[textField.text&nbsp;stringByReplacingCharactersInRange:range&nbsp;withString:</span><span style="color: #0000FF; ">string</span><span style="color: #000000; ">];&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">得到输入框的内容</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(self.myTextField&nbsp;</span><span style="color: #000000; ">==</span><span style="color: #000000; ">&nbsp;textField)　</span><span style="color: #008000; ">//</span><span style="color: #008000; ">判断是否时我们想要限定的那个输入框</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;([toBeString&nbsp;length]&nbsp;</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">20</span><span style="color: #000000; ">)&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">如果输入框内容大于20则弹出警告</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;textField.text&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;[toBeString&nbsp;substringToIndex:</span><span style="color: #000000; ">20</span><span style="color: #000000; ">];&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UIAlertView&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">alert&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;[[[UIAlertView&nbsp;alloc]&nbsp;initWithTitle:nil&nbsp;message:</span><span style="color: #000000; ">@"</span><span style="color: #000000; ">超过最大字数不能输入了</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">delegate</span><span style="color: #000000; ">:nil&nbsp;cancelButtonTitle:</span><span style="color: #000000; ">@"</span><span style="color: #000000; ">Ok</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;otherButtonTitles:nil,&nbsp;nil]&nbsp;autorelease];&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[alert&nbsp;show];&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;NO;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;YES;&nbsp;<br />}</span></div></div><span style="color: #333333; font-family: Arial; font-size: 14px; line-height: 26px; background-color: #ffffff;"><br />本文转自：</span><a href="http://www.3lian.com/edu/2012/11-08/43227.html">http://www.3lian.com/edu/2012/11-08/43227.html</a><img src ="http://www.cppblog.com/wanghaiguang/aggbug/207649.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wanghaiguang/" target="_blank">王海光</a> 2014-07-15 11:02 <a href="http://www.cppblog.com/wanghaiguang/archive/2014/07/15/207649.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>iOS日期笔记</title><link>http://www.cppblog.com/wanghaiguang/archive/2014/07/15/207648.html</link><dc:creator>王海光</dc:creator><author>王海光</author><pubDate>Tue, 15 Jul 2014 02:43:00 GMT</pubDate><guid>http://www.cppblog.com/wanghaiguang/archive/2014/07/15/207648.html</guid><wfw:comment>http://www.cppblog.com/wanghaiguang/comments/207648.html</wfw:comment><comments>http://www.cppblog.com/wanghaiguang/archive/2014/07/15/207648.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wanghaiguang/comments/commentRss/207648.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wanghaiguang/services/trackbacks/207648.html</trackback:ping><description><![CDATA[<span style="font-size: 12pt; font-family: Verdana;"><strong>1、根据年、月、日获取星期几</strong></span><div>
<div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="font-size: 12pt; font-family: Verdana;">-&nbsp;(</span><span style="color: #0000ff; font-size: 12pt; font-family: Verdana;">int</span><span style="font-size: 12pt; font-family: Verdana;">)getWeekdayFromDate:(</span><span style="color: #0000ff; font-size: 12pt; font-family: Verdana;">int</span><span style="font-size: 12pt; font-family: Verdana;">)nYead&nbsp;andMonth:(</span><span style="color: #0000ff; font-size: 12pt; font-family: Verdana;">int</span><span style="font-size: 12pt; font-family: Verdana;">)nMonth&nbsp;andDay:(</span><span style="color: #0000ff; font-size: 12pt; font-family: Verdana;">int</span><span style="font-size: 12pt; font-family: Verdana;">)nDay</span><br /><span style="font-size: 12pt; font-family: Verdana;">
{</span><br /><span style="font-size: 12pt; font-family: Verdana;">
&nbsp;&nbsp;&nbsp;&nbsp;NSDateComponents&nbsp;*_comps&nbsp;=&nbsp;[[NSDateComponents&nbsp;alloc]&nbsp;init];</span><br /><span style="font-size: 12pt; font-family: Verdana;">
&nbsp;&nbsp;&nbsp;&nbsp;[_comps&nbsp;setDay:nDay];</span><br /><span style="font-size: 12pt; font-family: Verdana;">
&nbsp;&nbsp;&nbsp;&nbsp;[_comps&nbsp;setMonth:nMonth];</span><br /><span style="font-size: 12pt; font-family: Verdana;">
&nbsp;&nbsp;&nbsp;&nbsp;[_comps&nbsp;setYear:nYead];</span><br /><span style="font-size: 12pt; font-family: Verdana;">
&nbsp;&nbsp;&nbsp;&nbsp;NSCalendar&nbsp;*gregorian&nbsp;=&nbsp;[[NSCalendar&nbsp;alloc]</span><br /><span style="font-size: 12pt; font-family: Verdana;">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;initWithCalendarIdentifier:NSGregorianCalendar];</span><br /><span style="font-size: 12pt; font-family: Verdana;">
&nbsp;&nbsp;&nbsp;&nbsp;NSDate&nbsp;*_date&nbsp;=&nbsp;[gregorian&nbsp;dateFromComponents:_comps];</span><br /><span style="font-size: 12pt; font-family: Verdana;">
&nbsp;&nbsp;&nbsp;&nbsp;NSDateComponents&nbsp;*weekdayComponents&nbsp;=</span><br /><span style="font-size: 12pt; font-family: Verdana;">
&nbsp;&nbsp;&nbsp;&nbsp;[gregorian&nbsp;components:NSWeekdayCalendarUnit&nbsp;fromDate:_date];</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000ff; font-size: 12pt; font-family: Verdana;">int</span><span style="font-size: 12pt; font-family: Verdana;">&nbsp;_weekday&nbsp;=&nbsp;[weekdayComponents&nbsp;weekday];</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000ff; font-size: 12pt; font-family: Verdana;">return</span><span style="font-size: 12pt; font-family: Verdana;">&nbsp;_weekday;</span><br /><span style="font-size: 12pt; font-family: Verdana;">
}</span></div>
</div>
<div><span style="font-size: 12pt; font-family: Verdana;">或</span></div>
<div>
<div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="font-size: 12pt; font-family: Verdana;">-&nbsp;(NSUInteger)getWeekdayFromDate:(NSDate*)date</span><br /><span style="font-size: 12pt; font-family: Verdana;">
{</span><br /><span style="font-size: 12pt; font-family: Verdana;">
&nbsp;&nbsp;&nbsp;&nbsp;NSCalendar*&nbsp;calendar&nbsp;=&nbsp;[[[NSCalendar&nbsp;alloc]&nbsp;initWithCalendarIdentifier:NSGregorianCalendar]&nbsp;autorelease];&nbsp;</span><br /><span style="font-size: 12pt; font-family: Verdana;">
&nbsp;&nbsp;&nbsp;&nbsp;NSDateComponents*&nbsp;components&nbsp;=&nbsp;[[[NSDateComponents&nbsp;alloc]&nbsp;init]&nbsp;autorelease];&nbsp;</span><br /><span style="font-size: 12pt; font-family: Verdana;">
&nbsp;&nbsp;&nbsp;&nbsp;NSInteger&nbsp;unitFlags&nbsp;=&nbsp;NSYearCalendarUnit&nbsp;|&nbsp;</span><br /><span style="font-size: 12pt; font-family: Verdana;">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NSMonthCalendarUnit&nbsp;|&nbsp;</span><br /><span style="font-size: 12pt; font-family: Verdana;">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NSDayCalendarUnit&nbsp;|&nbsp;</span><br /><span style="font-size: 12pt; font-family: Verdana;">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NSWeekdayCalendarUnit&nbsp;|&nbsp;</span><br /><span style="font-size: 12pt; font-family: Verdana;">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NSHourCalendarUnit&nbsp;|&nbsp;</span><br /><span style="font-size: 12pt; font-family: Verdana;">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NSMinuteCalendarUnit&nbsp;|&nbsp;</span><br /><span style="font-size: 12pt; font-family: Verdana;">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NSSecondCalendarUnit;&nbsp;</span><br />
<br /><span style="font-size: 12pt; font-family: Verdana;">
&nbsp;&nbsp;&nbsp;&nbsp;components&nbsp;=&nbsp;[calendar&nbsp;components:unitFlags&nbsp;fromDate:date];</span><br /><span style="font-size: 12pt; font-family: Verdana;">
&nbsp;&nbsp;&nbsp;&nbsp;NSUInteger&nbsp;weekday&nbsp;=&nbsp;[components&nbsp;weekday];&nbsp;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000ff; font-size: 12pt; font-family: Verdana;">return</span><span style="font-size: 12pt; font-family: Verdana;">&nbsp;weekday;</span><br /><span style="font-size: 12pt; font-family: Verdana;">
}</span></div>
</div>
<div><br />
</div>
<div><span style="font-size: 12pt; font-family: Verdana;"><strong>2、根据月和日获取星座</strong></span></div>
<div>
<div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="font-size: 12pt; font-family: Verdana;">-(NSString&nbsp;*)getAstroWithMonth:(</span><span style="color: #0000ff; font-size: 12pt; font-family: Verdana;">int</span><span style="font-size: 12pt; font-family: Verdana;">)m&nbsp;day:(</span><span style="color: #0000ff; font-size: 12pt; font-family: Verdana;">int</span><span style="font-size: 12pt; font-family: Verdana;">)d</span><br /><span style="font-size: 12pt; font-family: Verdana;">{</span>&nbsp;<br /><span style="font-size: 12pt; font-family: Verdana;">
&nbsp;&nbsp;&nbsp;&nbsp;NSString&nbsp;*astroString&nbsp;=&nbsp;@"魔羯水瓶双鱼白羊金牛双子巨蟹狮子处女天秤天蝎射手魔羯";</span><br /><span style="font-size: 12pt; font-family: Verdana;">
&nbsp;&nbsp;&nbsp;&nbsp;NSString&nbsp;*astroFormat&nbsp;=&nbsp;@"102123444543";</span><br /><span style="font-size: 12pt; font-family: Verdana;">
&nbsp;&nbsp;&nbsp;&nbsp;NSString&nbsp;*result;</span>&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000ff; font-size: 12pt; font-family: Verdana;">if</span><span style="font-size: 12pt; font-family: Verdana;">&nbsp;(m&nbsp;&lt;&nbsp;1&nbsp;||&nbsp;m&nbsp;&gt;&nbsp;12&nbsp;||&nbsp;d&nbsp;&lt;&nbsp;1&nbsp;||&nbsp;d&nbsp;&gt;&nbsp;31)</span><br /><span style="font-size: 12pt; font-family: Verdana;">
&nbsp;&nbsp;&nbsp;&nbsp;{</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000ff; font-size: 12pt; font-family: Verdana;">return</span><span style="font-size: 12pt; font-family: Verdana;">&nbsp;@"错误日期格式!";</span><br /><span style="font-size: 12pt; font-family: Verdana;">
&nbsp;&nbsp;&nbsp;&nbsp;}</span>&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000ff; font-size: 12pt; font-family: Verdana;">if</span><span style="font-size: 12pt; font-family: Verdana;">(m&nbsp;==&nbsp;2&nbsp;&amp;&amp;&nbsp;d&nbsp;&gt;&nbsp;29)</span><br /><span style="font-size: 12pt; font-family: Verdana;">
&nbsp;&nbsp;&nbsp;&nbsp;{</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000ff; font-size: 12pt; font-family: Verdana;">return</span><span style="font-size: 12pt; font-family: Verdana;">&nbsp;@"错误日期格式!!";</span><br /><span style="font-size: 12pt; font-family: Verdana;">
&nbsp;&nbsp;&nbsp;&nbsp;}</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000ff; font-size: 12pt; font-family: Verdana;">else</span>&nbsp;<span style="color: #0000ff; font-size: 12pt; font-family: Verdana;">if</span><span style="font-size: 12pt; font-family: Verdana;">(m&nbsp;==&nbsp;4&nbsp;||&nbsp;m&nbsp;==&nbsp;6&nbsp;||&nbsp;m&nbsp;==&nbsp;9&nbsp;||&nbsp;m&nbsp;==&nbsp;11)</span><br /><span style="font-size: 12pt; font-family: Verdana;">
&nbsp;&nbsp;&nbsp;&nbsp;{</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000ff; font-size: 12pt; font-family: Verdana;">if</span><span style="font-size: 12pt; font-family: Verdana;">&nbsp;(d&nbsp;&gt;&nbsp;30)</span><br /><span style="font-size: 12pt; font-family: Verdana;">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000ff; font-size: 12pt; font-family: Verdana;">return</span><span style="font-size: 12pt; font-family: Verdana;">&nbsp;@"错误日期格式!!!";</span><br /><span style="font-size: 12pt; font-family: Verdana;">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span><br /><span style="font-size: 12pt; font-family: Verdana;">
&nbsp;&nbsp;&nbsp;&nbsp;}</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="font-size: 12pt; font-family: Verdana;">
&nbsp;&nbsp;&nbsp;&nbsp;result&nbsp;=&nbsp;[NSString&nbsp;stringWithFormat:@"%@",[astroString&nbsp;substringWithRange:NSMakeRange(m*2&nbsp;-&nbsp;(d&nbsp;&lt;&nbsp;[[astroFormat&nbsp;substringWithRange:NSMakeRange((m&nbsp;-&nbsp;1),&nbsp;1)]&nbsp;intValue]&nbsp;-&nbsp;(-19))*2,&nbsp;2)]];</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000ff; font-size: 12pt; font-family: Verdana;">return</span><span style="font-size: 12pt; font-family: Verdana;">&nbsp;result;</span><br /><span style="font-size: 12pt; font-family: Verdana;">
}</span></div>
</div>
<div><br />
</div>
<div><span style="font-size: 12pt; font-family: Verdana;"><strong>3、计算两个日期之间相差几天几小时几分钟</strong></span></div>
<div>
<div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="font-size: 12pt; font-family: Verdana;">NSDateFormatter&nbsp;*dateFormatter=[[NSDateFormatter&nbsp;alloc]&nbsp;init];</span><br /><span style="font-size: 12pt; font-family: Verdana;">
&nbsp;&nbsp;&nbsp;[dateFormatter&nbsp;setDateFormat:@"yyyy-MM-dd&nbsp;HH:mm:ss"];</span><br /><span style="font-size: 12pt; font-family: Verdana;">
&nbsp;&nbsp;&nbsp;NSDate&nbsp;*&nbsp;&nbsp;senddate=[NSDate&nbsp;date];</span><br />
&nbsp;&nbsp;&nbsp;<span style="color: #008000; font-size: 12pt; font-family: Verdana;">//</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">结束时间</span><span style="color: #008000; "><br />
</span><span style="font-size: 12pt; font-family: Verdana;">&nbsp;&nbsp;&nbsp;NSDate&nbsp;*endDate&nbsp;=&nbsp;[dateFormatter&nbsp;dateFromString:@"2014-6-24&nbsp;00:00:00"];</span><br />
&nbsp;&nbsp;&nbsp;<span style="color: #008000; font-size: 12pt; font-family: Verdana;">//</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">当前时间</span><span style="color: #008000; "><br />
</span><span style="font-size: 12pt; font-family: Verdana;">&nbsp;&nbsp;&nbsp;NSDate&nbsp;*senderDate&nbsp;=&nbsp;[dateFormatter&nbsp;dateFromString:[dateFormatter&nbsp;stringFromDate:senddate]];</span><br />
&nbsp;&nbsp;&nbsp;<span style="color: #008000; font-size: 12pt; font-family: Verdana;">//</span><span style="color: #008000; font-size: 12pt; font-family: Verdana;">得到相差秒数</span><span style="color: #008000; "><br />
</span><span style="font-size: 12pt; font-family: Verdana;">&nbsp;&nbsp;&nbsp;NSTimeInterval&nbsp;time=[endDate&nbsp;timeIntervalSinceDate:senderDate];</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;<span style="color: #0000ff; font-size: 12pt; font-family: Verdana;">int</span><span style="font-size: 12pt; font-family: Verdana;">&nbsp;days&nbsp;=&nbsp;((</span><span style="color: #0000ff; font-size: 12pt; font-family: Verdana;">int</span><span style="font-size: 12pt; font-family: Verdana;">)time)/(3600*24);</span><br />
&nbsp;&nbsp;&nbsp;<span style="color: #0000ff; font-size: 12pt; font-family: Verdana;">int</span><span style="font-size: 12pt; font-family: Verdana;">&nbsp;hours&nbsp;=&nbsp;((</span><span style="color: #0000ff; font-size: 12pt; font-family: Verdana;">int</span><span style="font-size: 12pt; font-family: Verdana;">)time)%(3600*24)/3600;</span><br />
&nbsp;&nbsp;&nbsp;<span style="color: #0000ff; font-size: 12pt; font-family: Verdana;">int</span><span style="font-size: 12pt; font-family: Verdana;">&nbsp;minute&nbsp;=&nbsp;((</span><span style="color: #0000ff; font-size: 12pt; font-family: Verdana;">int</span><span style="font-size: 12pt; font-family: Verdana;">)time)%(3600*24)600/60;</span><br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;<span style="color: #0000ff; font-size: 12pt; font-family: Verdana;">if</span><span style="font-size: 12pt; font-family: Verdana;">&nbsp;(days&nbsp;&lt;=&nbsp;0&amp;&amp;hours;&nbsp;&lt;=&nbsp;0&amp;&amp;minute;&nbsp;&lt;=&nbsp;0)</span><br /><span style="font-size: 12pt; font-family: Verdana;">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dateContent=@"0天0小时0分钟";</span><br />
&nbsp;&nbsp;&nbsp;<span style="color: #0000ff; font-size: 12pt; font-family: Verdana;">else</span><br /><span style="font-size: 12pt; font-family: Verdana;">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dateContent=[[NSString&nbsp;alloc]&nbsp;initWithFormat:@"%i天%i小时%i分钟",days,hours,minute];</span></div>
</div>
<div><br />
</div>
<div><span style="font-size: 12pt; font-family: Verdana;"><strong>4、获取当前时间</strong></span></div>
<div>
<div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="font-size: 12pt; font-family: Verdana;">NSDate&nbsp;*now&nbsp;=&nbsp;[NSDate&nbsp;date];</span><br /><span style="font-size: 12pt; font-family: Verdana;">
NSLog(@&#8221;now&nbsp;date&nbsp;</span><span style="color: #0000ff; font-size: 12pt; font-family: Verdana;">is</span><span style="font-size: 12pt; font-family: Verdana;">:&nbsp;%@&#8221;,&nbsp;now);</span><br />
<br /><span style="font-size: 12pt; font-family: Verdana;">
NSCalendar&nbsp;*calendar&nbsp;=&nbsp;[NSCalendar&nbsp;currentCalendar];</span><br /><span style="font-size: 12pt; font-family: Verdana;">
NSUInteger&nbsp;unitFlags&nbsp;=&nbsp;NSYearCalendarUnit&nbsp;|&nbsp;NSMonthCalendarUnit&nbsp;|&nbsp;NSDayCalendarUnit&nbsp;|&nbsp;NSHourCalendarUnit&nbsp;|&nbsp;NSMinuteCalendarUnit&nbsp;|&nbsp;NSSecondCalendarUnit;</span><br /><span style="font-size: 12pt; font-family: Verdana;">
NSDateComponents&nbsp;*dateComponent&nbsp;=&nbsp;[calendar&nbsp;components:unitFlags&nbsp;fromDate:now];</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #0000ff; font-size: 12pt; font-family: Verdana;">int</span><span style="font-size: 12pt; font-family: Verdana;">&nbsp;year&nbsp;=&nbsp;[dateComponent&nbsp;year];</span><br />
<span style="color: #0000ff; font-size: 12pt; font-family: Verdana;">int</span><span style="font-size: 12pt; font-family: Verdana;">&nbsp;month&nbsp;=&nbsp;[dateComponent&nbsp;month];</span><br />
<span style="color: #0000ff; font-size: 12pt; font-family: Verdana;">int</span><span style="font-size: 12pt; font-family: Verdana;">&nbsp;day&nbsp;=&nbsp;[dateComponent&nbsp;day];</span><br />
<span style="color: #0000ff; font-size: 12pt; font-family: Verdana;">int</span><span style="font-size: 12pt; font-family: Verdana;">&nbsp;hour&nbsp;=&nbsp;[dateComponent&nbsp;hour];</span><br />
<span style="color: #0000ff; font-size: 12pt; font-family: Verdana;">int</span><span style="font-size: 12pt; font-family: Verdana;">&nbsp;minute&nbsp;=&nbsp;[dateComponent&nbsp;minute];</span><br />
<span style="color: #0000ff; font-size: 12pt; font-family: Verdana;">int</span><span style="font-size: 12pt; font-family: Verdana;">&nbsp;second&nbsp;=&nbsp;[dateComponent&nbsp;second];</span><br />
<br /><span style="font-size: 12pt; font-family: Verdana;">
NSLog(@&#8221;year&nbsp;</span><span style="color: #0000ff; font-size: 12pt; font-family: Verdana;">is</span><span style="font-size: 12pt; font-family: Verdana;">:&nbsp;%d&#8221;,&nbsp;year);</span><br /><span style="font-size: 12pt; font-family: Verdana;">
NSLog(@&#8221;month&nbsp;</span><span style="color: #0000ff; font-size: 12pt; font-family: Verdana;">is</span><span style="font-size: 12pt; font-family: Verdana;">:&nbsp;%d&#8221;,&nbsp;month);</span><br /><span style="font-size: 12pt; font-family: Verdana;">
NSLog(@&#8221;day&nbsp;</span><span style="color: #0000ff; font-size: 12pt; font-family: Verdana;">is</span><span style="font-size: 12pt; font-family: Verdana;">:&nbsp;%d&#8221;,&nbsp;day);</span><br /><span style="font-size: 12pt; font-family: Verdana;">
NSLog(@&#8221;hour&nbsp;</span><span style="color: #0000ff; font-size: 12pt; font-family: Verdana;">is</span><span style="font-size: 12pt; font-family: Verdana;">:&nbsp;%d&#8221;,&nbsp;hour);</span><br /><span style="font-size: 12pt; font-family: Verdana;">
NSLog(@&#8221;minute&nbsp;</span><span style="color: #0000ff; font-size: 12pt; font-family: Verdana;">is</span><span style="font-size: 12pt; font-family: Verdana;">:&nbsp;%d&#8221;,&nbsp;minute);</span><br /><span style="font-size: 12pt; font-family: Verdana;">
NSLog(@&#8221;second&nbsp;</span><span style="color: #0000ff; font-size: 12pt; font-family: Verdana;">is</span><span style="font-size: 12pt; font-family: Verdana;">:&nbsp;%d&#8221;,&nbsp;second);</span></div>
</div>
<div><br />
</div>
<div><span style="font-size: 12pt; font-family: Verdana;">注：根据互联网资料整理</span></div><img src ="http://www.cppblog.com/wanghaiguang/aggbug/207648.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wanghaiguang/" target="_blank">王海光</a> 2014-07-15 10:43 <a href="http://www.cppblog.com/wanghaiguang/archive/2014/07/15/207648.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关闭ios虚拟键盘的几种方法（转载）</title><link>http://www.cppblog.com/wanghaiguang/archive/2014/06/23/207382.html</link><dc:creator>王海光</dc:creator><author>王海光</author><pubDate>Mon, 23 Jun 2014 05:54:00 GMT</pubDate><guid>http://www.cppblog.com/wanghaiguang/archive/2014/06/23/207382.html</guid><wfw:comment>http://www.cppblog.com/wanghaiguang/comments/207382.html</wfw:comment><comments>http://www.cppblog.com/wanghaiguang/archive/2014/06/23/207382.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wanghaiguang/comments/commentRss/207382.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wanghaiguang/services/trackbacks/207382.html</trackback:ping><description><![CDATA[<div id="blog_content" class="blog_content" style="line-height: 1.8em;">
<p style="margin: 0px; padding: 0px;">在iOS应用开发中，有三类视图对象会打开虚拟键盘，进行输入操作，但如何关闭虚拟键盘，却没有提供自动化的方法。这个需要我们自己去实现。这三类视图对象分别是UITextField,UITextView和UISearchBar。<br />
这里介绍一下UITextField中关闭虚拟键盘的几种方法。</p>
<p style="margin: 0px; padding: 0px;">&nbsp;</p>
<p style="margin: 0px; padding: 0px;">(原文链接:&nbsp;<a href="http://mikixiyou.iteye.com/blog/1753330" style="color: #006699;">http://mikixiyou.iteye.com/blog/1753330</a>&nbsp;)</p>
<p style="margin: 0px; padding: 0px;"><br /><strong>
第一种方法，使用它的委托UITextFieldDelegate中的方法textFieldShouldReturn:来关闭虚拟键盘。</strong><br />
在UITextField视图对象如birdNameInput所在的类中实现这个方法。<br /></p><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->-&nbsp;(BOOL)textFieldShouldReturn:(UITextField&nbsp;*)textField&nbsp;{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;((textField&nbsp;==&nbsp;self.birdNameInput)&nbsp;||&nbsp;(textField&nbsp;==&nbsp;self.locationInput))&nbsp;{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[textField&nbsp;resignFirstResponder];&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;YES;&nbsp;&nbsp;<br />}&nbsp;</div><p>&nbsp;<span style="line-height: 1.8em; font-size: 14px;">这样，在输入框birdNameInput中打开虚拟键盘后，轻击键盘的return键就会自动关闭掉虚拟键盘。</span></p><p style="margin: 0px; padding: 0px;"><br /><strong>
第二种方法，将birdNameInput的属性中Return Key修改为done，再定义一个方法和Done键的Did End On Exit连接。通过轻击done键触发这个事件来关闭虚拟键盘。</strong><br />
定义的方法如下：<br /></p><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->-&nbsp;(IBAction)&nbsp;textFieldDoneEditing:(id)sender&nbsp;&nbsp;<br />{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[sender&nbsp;resignFirstResponder];&nbsp;&nbsp;<br />}&nbsp;<span style="line-height: 1.8em; font-size: 14px;">&nbsp;</span></div>
<p style="margin: 0px; padding: 0px;">这两个方法都是轻击虚拟键盘上一个键来关闭它。这属于精确操作，而手指不像鼠标，做这种操作不容易。因此就UI层面而言，这两个方法都不是最好的方法。<br />
在iphone或ipad屏幕上，虚拟键盘占用的面积大小是有限的。通过轻击虚拟键盘之外的区域而关闭虚拟键盘。</p>
<p style="margin: 0px; padding: 0px;">&nbsp;</p>
<p style="margin: 0px; padding: 0px;"><strong>第三种方法，通过轻击键盘之外的空白区域关闭虚拟键盘。</strong><br />
在birdNameInput所属的视图控制器类的viewDidLoad方法中定义一个UITapGestureRecognizer的对象，然后将它赋值为它的视图。<br /></p><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->UITapGestureRecognizer&nbsp;*tap&nbsp;=&nbsp;[[UITapGestureRecognizer&nbsp;alloc]&nbsp;&nbsp;&nbsp;initWithTarget:self&nbsp;action:@selector(dismissKeyboard)];&nbsp;&nbsp;<br />[self.view&nbsp;addGestureRecognizer:tap];&nbsp;&nbsp;<br />[tap&nbsp;release];&nbsp;</div>
<p style="margin: 0px; padding: 0px;"><br />再定义一下选择器调用的方法dismissKeyboard。<br /></p><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->-(<span style="color: #0000FF; ">void</span>)dismissKeyboard&nbsp;{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[birdNameInput&nbsp;resignFirstResponder];&nbsp;&nbsp;<br />}&nbsp;</div><p style="margin: 0px; padding: 0px;">
<br />如果屏幕上有多个textField的话，一个一个地列出来就有些麻烦。那么将方法修改一下，如下：<br /></p><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->-(<span style="color: #0000FF; ">void</span>)dismissKeyboard&nbsp;{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;NSArray&nbsp;*subviews&nbsp;=&nbsp;[self.view&nbsp;subviews];&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(id&nbsp;objInput&nbsp;<span style="color: #0000FF; ">in</span>&nbsp;subviews)&nbsp;{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;([objInput&nbsp;isKindOfClass:[UITextField&nbsp;<span style="color: #0000FF; ">class</span>]])&nbsp;{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UITextField&nbsp;*theTextField&nbsp;=&nbsp;objInput;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;([objInput&nbsp;isFirstResponder])&nbsp;{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[theTextField&nbsp;resignFirstResponder];&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br />}</div>
<p style="margin: 0px; padding: 0px;">如果这个屏幕上的视图对象很复杂的话，另当别论。<br />
这个方法是编码新建一个手势对象。也可以直接使用interface builder图形化开发工具，在storyboard中拉入一个手势对象到视图控制器类中，再将此手势对象建立一个IBACTION，名称可以是dismissKeyboard。<br />
<br /><strong>
第四种方法，通过轻击键盘之外的空白区域关闭虚拟键盘。</strong><br />
将屏幕上的view也就是textField的父视图拖一个touch down事件出来，和一个能关闭虚拟键盘的方法连接。如果视图没有touch down事件，可将view的父类从UIView修改为UIButton。<br />
首先定义并实现一个方法backgroundTap：。</p><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all">&nbsp;<span style="font-size: 13px; line-height: 1.8em;">-</span><span style="font-size: 13px; line-height: 1.8em;">&nbsp;(IBAction)&nbsp;backgroundTap:(id)sender &nbsp;</span><br />{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NSArray&nbsp;*subviews&nbsp;=&nbsp;[self.view&nbsp;subviews];&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(id&nbsp;objInput&nbsp;<span style="color: #0000FF; ">in</span>&nbsp;subviews)&nbsp;{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;([objInput&nbsp;isKindOfClass:[UITextField&nbsp;<span style="color: #0000FF; ">class</span>]])&nbsp;{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UITextField&nbsp;*theTextField&nbsp;=&nbsp;objInput;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;([objInput&nbsp;isFirstResponder])&nbsp;{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[theTextField&nbsp;resignFirstResponder];&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br />}</div>
<p style="margin: 0px; padding: 0px;">然后选择背景视图的Touch Down事件，连接 backgroundTap：即可。这样只要轻击一下虚拟键盘之外的区域，就能关闭虚拟键盘。这些方法都是使用resignFirstResponder方法来关闭虚拟键盘，还有其他的方法。</p>
<p style="margin: 0px; padding: 0px;">&nbsp;</p>
<p style="margin: 0px; padding: 0px;"><strong>第五种方法，使用endEditing：方法</strong><br />
在所在的视图控制器类中，覆盖这个方法。<br /></p><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->-&nbsp;(<span style="color: #0000FF; ">void</span>)touchesBegan:(NSSet&nbsp;*)touches&nbsp;withEvent:(UIEvent&nbsp;*)<span style="color: #0000FF; ">event</span>&nbsp;{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[[self&nbsp;view]&nbsp;endEditing:YES];&nbsp;&nbsp;<br />}</div><p>&nbsp;</p>
<p style="margin: 0px; padding: 0px;">This method looks at the current view and its subview hierarchy for the text field that is currently the first responder. If it finds one, it asks that text field to resign as first responder. If the force parameter is set to YES, the text field is never even asked; it is forced to resign.<br />
但是，如果这个屏幕很复杂，虚拟键盘之外的区域中有很多按钮。轻击这些区域时可能会轻击到这些按钮，这样虚拟键盘就不能关闭。<br />
要是找到一个没有按钮的空白区域都不容易且还有隐藏的视图对象时，通过轻击虚拟键盘之外的区域关闭虚拟键盘的方法实现起来就难了。</p>
<p style="margin: 0px; padding: 0px;">&nbsp;</p>
<p style="margin: 0px; padding: 0px;"><strong>第六种方法，覆盖hitTest:withEvent:方法关闭虚拟键盘</strong></p>
<p style="margin: 0px; padding: 0px;">&nbsp;</p>
<p style="margin: 0px; padding: 0px;">在stackoverflow.com上，有人这样总结。说使用hitTest:withEvent:方法是最好的，也是最容易的解决方法。</p>
<p style="margin: 0px; padding: 0px;">&nbsp;</p>
<p style="margin: 0px; padding: 0px;">I think the easiest (and best) way to do this is to subclass your global view and use hitTest:withEvent method to listen to any touch.&nbsp;<br />
Touches on keyboard aren't registered, so hitTest:withEvent is only called when you touch/scroll/swipe/pinch... somewhere else, then call [self endEditing:YES].<br />
This is better than using touchesBegan because touchesBegan are not called if you click on a button on top of the view.&nbsp;<br />
It is better than UITapGestureRecognizer which can't recognize a scrolling gesture for example. It is also better than using a dim screen because in a complexe and dynamic user interface, you can't put dim screen every where. Moreover, it doesn't block other actions, you don't need to tap twice to select a button outside (like in the case of a UIPopover).<br />
Also, it's better than calling [textField resignFirstResponder], because you may have many text fields on screen, so this works for all of them.</p>
<p style="margin: 0px; padding: 0px;">&nbsp;</p>
<p style="margin: 0px; padding: 0px;">因此，我再建立一个继承UIView的视图类。在这个视图类中，覆盖hitTest:withEvent:方法，增加[self endEditing:YES]方法。</p><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all">&nbsp;<span style="font-size: 13px; line-height: 1.8em;">-</span><span style="font-size: 13px; line-height: 1.8em;">&nbsp;(UIView&nbsp;</span><span style="font-size: 13px; line-height: 1.8em;">*</span><span style="font-size: 13px; line-height: 1.8em;">)hitTest:(CGPoint)point&nbsp;withEvent:(UIEvent&nbsp;</span><span style="font-size: 13px; line-height: 1.8em;">*</span><span style="font-size: 13px; line-height: 1.8em;">)</span><span style="font-size: 13px; line-height: 1.8em; color: #0000ff;">event</span><span style="font-size: 13px; line-height: 1.8em;">&nbsp;{ &nbsp;</span><br />UIView&nbsp;*result&nbsp;=&nbsp;[super&nbsp;hitTest:point&nbsp;withEvent:<span style="color: #0000FF; ">event</span>];&nbsp;&nbsp;<br />[self&nbsp;endEditing:YES]&nbsp;&nbsp;<br /><span style="color: #0000FF; ">return</span>&nbsp;result;&nbsp;&nbsp;<br />}&nbsp;</div><p style="margin: 0px; padding: 0px;">
我将视图控制器的主视图所属类修改为这个新建视图类。这样在屏幕上轻击任何位置都会关闭虚拟键盘。<br />
这个方法是最简单，也是最好的关闭虚拟键盘的方法。<br />
使用好hitTest:withEvent:这个方法，还可以实现很多很复杂的功能。<br />
The implementation of hitTest:withEvent: in UIResponder does the following:</p>
<ul style="margin: 0px 0px 1.5em; padding: 0px;">
    <li style="margin: 0px 0px 0.25em 30px; padding: 0px;">&nbsp;&nbsp;&nbsp; It calls pointInside:withEvent: of self</li>
    <li style="margin: 0px 0px 0.25em 30px; padding: 0px;">&nbsp;&nbsp;&nbsp; If the return is NO, hitTest:withEvent: returns nil. the end of the story.</li>
    <li style="margin: 0px 0px 0.25em 30px; padding: 0px;">&nbsp;&nbsp;&nbsp; If the return is YES, it sends hitTest:withEvent: messages to its subviews. it starts from the top-level subview, and continues to other views until a subview returns a non-nil object, or all subviews receive the message.</li>
    <li style="margin: 0px 0px 0.25em 30px; padding: 0px;">&nbsp;&nbsp;&nbsp; If a subview returns a non-nil object in the first time, the first hitTest:withEvent: returns that object. the end of the story.</li>
    <li style="margin: 0px 0px 0.25em 30px; padding: 0px;">&nbsp;&nbsp;&nbsp; If no subview returns a non-nil object, the first hitTest:withEvent: returns self</li>
</ul>
<p style="margin: 0px; padding: 0px;">This process repeats recursively, so normally the leaf view of the view hierarchy is returned eventually.<br />
However, you might override hitTest:withEvent to do something differently. In many cases, overriding pointInside:withEvent: is simpler and still provides enough options to tweak event handling in your application.</p></div><img src ="http://www.cppblog.com/wanghaiguang/aggbug/207382.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wanghaiguang/" target="_blank">王海光</a> 2014-06-23 13:54 <a href="http://www.cppblog.com/wanghaiguang/archive/2014/06/23/207382.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>iOS界面传递之委托</title><link>http://www.cppblog.com/wanghaiguang/archive/2014/06/18/207325.html</link><dc:creator>王海光</dc:creator><author>王海光</author><pubDate>Wed, 18 Jun 2014 06:50:00 GMT</pubDate><guid>http://www.cppblog.com/wanghaiguang/archive/2014/06/18/207325.html</guid><wfw:comment>http://www.cppblog.com/wanghaiguang/comments/207325.html</wfw:comment><comments>http://www.cppblog.com/wanghaiguang/archive/2014/06/18/207325.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wanghaiguang/comments/commentRss/207325.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wanghaiguang/services/trackbacks/207325.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;IOS开发使用委托delegate在不同窗口之间传递数据是本文要介绍的内容，主要是来讲解如何使用委托delegate在不同窗口之间传递数据，具体内容来看详细内容。在IOS开发里两个UIView窗口之间传递参数方法有很多，比如1、使用SharedApplication,定义一个变量来传递.2、使用文件，或者NSUserdefaul...&nbsp;&nbsp;<a href='http://www.cppblog.com/wanghaiguang/archive/2014/06/18/207325.html'>阅读全文</a><img src ="http://www.cppblog.com/wanghaiguang/aggbug/207325.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wanghaiguang/" target="_blank">王海光</a> 2014-06-18 14:50 <a href="http://www.cppblog.com/wanghaiguang/archive/2014/06/18/207325.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>iOS中UIImageview笔记</title><link>http://www.cppblog.com/wanghaiguang/archive/2014/05/28/207130.html</link><dc:creator>王海光</dc:creator><author>王海光</author><pubDate>Wed, 28 May 2014 06:33:00 GMT</pubDate><guid>http://www.cppblog.com/wanghaiguang/archive/2014/05/28/207130.html</guid><wfw:comment>http://www.cppblog.com/wanghaiguang/comments/207130.html</wfw:comment><comments>http://www.cppblog.com/wanghaiguang/archive/2014/05/28/207130.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wanghaiguang/comments/commentRss/207130.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wanghaiguang/services/trackbacks/207130.html</trackback:ping><description><![CDATA[1、设置背景图片
<div>
<div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080; ">1</span>&nbsp; &nbsp; &nbsp;UIImageView&nbsp;*imgView&nbsp;=[[UIImageView&nbsp;alloc]&nbsp;initWithFrame:CGRectMake(128,&nbsp;80,64,64)];</div>
<div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;">
<span style="color: #008080; ">2</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;imgView.image&nbsp;=&nbsp;[UIImage&nbsp;imageNamed:@"portrait.png"];<br />
<span style="color: #008080; ">3</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;imgView.userInteractionEnabled=YES;<br />
<span style="color: #008080; ">4</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UITapGestureRecognizer&nbsp;*singleTap&nbsp;=[[UITapGestureRecognizer&nbsp;alloc]initWithTarget:self&nbsp;action:@selector(onClickPortraitImage)];<br />
<span style="color: #008080; ">5</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[imgView&nbsp;addGestureRecognizer:singleTap];<br />
<span style="color: #008080; ">6</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[self.view&nbsp;addSubview:imgView];</div>
</div>
<div><br />
</div>
<div>2、响应点击事件</div>
<div>
<div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080; ">1</span>&nbsp;-(<span style="color: #0000FF; ">void</span>)onClickPortraitImage{<br />
<span style="color: #008080; ">2</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">3</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NSLog(@"图片被点击!");<br />
<span style="color: #008080; ">4</span>&nbsp;}</div>
</div>
<div><br />
</div>
<div>开发工具Xcode5 系统版本：<font face="Heiti SC Light"><strong>OS X 10. 9. 3 ( 13D65 )</strong></font></div><img src ="http://www.cppblog.com/wanghaiguang/aggbug/207130.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wanghaiguang/" target="_blank">王海光</a> 2014-05-28 14:33 <a href="http://www.cppblog.com/wanghaiguang/archive/2014/05/28/207130.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>